TimechoDB supports registering ConfigNode, DataNode, and AINode as Linux system services via the three scripts daemon-confignode.sh, daemon-datanode.sh, and daemon-ainode.sh. Combined with the system-built systemctl command, it manages the TimechoDB cluster in daemon mode, enabling more convenient startup, shutdown, restart, and auto-start on boot operations, and improving service stability.
Note: This feature is available starting from version 2.0.9.1.
| Item | Specification |
|---|---|
| OS | Linux (supports the systemctl command) |
| User Privilege | root user |
| Environment Variable | JAVA_HOME must be set before deploying ConfigNode and DataNode |
Enter the TimechoDB installation directory and execute the corresponding daemon script:
# Register ConfigNode service ./tools/ops/daemon-confignode.sh # Register DataNode service ./tools/ops/daemon-datanode.sh # Register AINode service ./tools/ops/daemon-ainode.sh
During script execution, you will be prompted with two options:
After script execution, the corresponding service files will be generated in the /etc/systemd/system/ directory:
timechodb-confignode.servicetimechodb-datanode.servicetimechodb-ainode.serviceAfter service registration, you can use systemctl commands to start, stop, restart, check status, and configure auto-start on boot for each TimechoDB node service. All commands below must be executed as the root user.
# Start ConfigNode service systemctl start timechodb-confignode # Start DataNode service systemctl start timechodb-datanode # Start AINode service systemctl start timechodb-ainode
# Stop ConfigNode service systemctl stop timechodb-confignode # Stop DataNode service systemctl stop timechodb-datanode # Stop AINode service systemctl stop timechodb-ainode
After stopping the service, check the service status. If it shows inactive (dead), the service has been shut down successfully. For other statuses, check TimechoDB logs to analyze exceptions.
# Check ConfigNode service status systemctl status timechodb-confignode # Check DataNode service status systemctl status timechodb-datanode # Check AINode service status systemctl status timechodb-ainode
Status Description:
active (running): Service is running. If this status persists for 10 minutes, the service has started successfully.failed: Service startup failed. Check TimechoDB logs for troubleshooting.Restarting a service is equivalent to stopping and then starting it. Commands are as follows:
# Restart ConfigNode service systemctl restart timechodb-confignode # Restart DataNode service systemctl restart timechodb-datanode # Restart AINode service systemctl restart timechodb-ainode
# Enable ConfigNode auto-start on boot systemctl enable timechodb-confignode # Enable DataNode auto-start on boot systemctl enable timechodb-datanode # Enable AINode auto-start on boot systemctl enable timechodb-ainode
# Disable ConfigNode auto-start on boot systemctl disable timechodb-confignode # Disable DataNode auto-start on boot systemctl disable timechodb-datanode # Disable AINode auto-start on boot systemctl disable timechodb-ainode
[Unit], [Service], and [Install] sections in the daemon-xxx.sh script. For details of configuration items, refer to the next section.daemon-xxx.sh script.xx.service file in /etc/systemd/system.systemctl daemon-reload.daemon-xxx.sh Configuration Items[Unit] Section (Service Metadata)| Item | Description |
|---|---|
| Description | Service description |
| Documentation | Link to the official TimechoDB documentation |
| After | Ensures the service starts only after the network service has started |
[Service] Section (Service Runtime Configuration)| Item | Meaning |
|---|---|
| StandardOutput, StandardError | Specify storage paths for service standard output and error logs |
| LimitNOFILE=65536 | Set the maximum number of file descriptors, default value is 65536 |
| Type=simple | Service type is a simple foreground process; systemd tracks the main service process |
| User=root, Group=root | Run the service with root user and group permissions |
| ExecStart / ExecStop | Specify the paths of the service startup and shutdown scripts respectively |
| Restart=on-failure | Automatically restart the service only if it exits abnormally |
| SuccessExitStatus=143 | Treat exit code 143 (128+15, normal termination via SIGTERM) as a successful exit |
| RestartSec=5 | Interval between service restarts, default 5 seconds |
| StartLimitInterval=600s, StartLimitBurst=3 | Maximum 3 restarts within 10 minutes (600 seconds) to prevent excessive resource consumption from frequent restarts |
| RestartPreventExitStatus=SIGKILL | Do not auto-restart the service if killed by the SIGKILL signal, avoiding infinite restart of zombie processes |
[Install] Section (Installation Configuration)| Item | Meaning |
|---|---|
| WantedBy=multi-user.target | Start the service automatically when the system enters multi-user mode |
.service File Format[Unit] Description=timechodb-confignode Documentation=https://www.timecho.com/ After=network.target [Service] StandardOutput=null StandardError=null LimitNOFILE=65536 Type=simple User=root Group=root Environment=JAVA_HOME=$JAVA_HOME ExecStart=$TimechoDB_SBIN_HOME/start-confignode.sh Restart=on-failure SuccessExitStatus=143 RestartSec=5 StartLimitInterval=600s StartLimitBurst=3 RestartPreventExitStatus=SIGKILL [Install] WantedBy=multi-user.target
Note: The above is the standard format of the timechodb-confignode.service file. The formats of timechodb-datanode.service and timechodb-ainode.service are similar.
Process Daemon Mechanism
kill, ./sbin/stop-xxx.sh, or systemctl stop) will not trigger auto-restart.Log Location
logs folder under the TimechoDB installation directory. Refer to this directory for troubleshooting.Cluster Status Check
./sbin/start-cli.sh and run the show cluster command to view the cluster status.Fault Recovery Procedure
failed, after fixing the issue, you must first execute systemctl daemon-reload before running systemctl start, otherwise startup will fail.Configuration Activation
daemon-xxx.sh script, execute systemctl daemon-reload to re-register the service for new configurations to take effect.Startup Mode Compatibility
systemctl start can be stopped using ./sbin/stop (no restart triggered)../sbin/start cannot be monitored via systemctl.