Spaces:
Sleeping
Sleeping
| # 守护进程控制脚本 | |
| # 定义守护进程 Python 脚本的路径 | |
| DAEMON_PATH="./src/daemon_process.py" | |
| # 定义守护进程的名称 | |
| DAEMON_NAME="DaemonProcess" | |
| # 定义日志文件的路径 | |
| LOG_FILE="./logs/$DAEMON_NAME.log" | |
| # 定义守护进程的 PID 文件路径,用于存储进程号 | |
| PID_FILE="./run/$DAEMON_NAME.pid" | |
| # 启动守护进程的函数 | |
| start() { | |
| echo "Starting $DAEMON_NAME..." | |
| # 使用 nohup 命令在后台运行 Python 脚本,并将输出重定向到日志文件 | |
| nohup python3 $DAEMON_PATH > $LOG_FILE 2>&1 & | |
| # 将守护进程的 PID 写入文件 | |
| echo $! > $PID_FILE | |
| echo "$DAEMON_NAME started." | |
| } | |
| # 停止守护进程的函数 | |
| stop() { | |
| if [ -f $PID_FILE ]; then | |
| # 如果 PID 文件存在,读取 PID | |
| PID=$(cat $PID_FILE) | |
| echo "Stopping $DAEMON_NAME..." | |
| # 使用 kill 命令停止进程 | |
| kill $PID | |
| echo "$DAEMON_NAME stopped." | |
| # 删除 PID 文件 | |
| rm $PID_FILE | |
| else | |
| echo "$DAEMON_NAME is not running." | |
| fi | |
| } | |
| # 检查守护进程状态的函数 | |
| status() { | |
| if [ -f $PID_FILE ]; then | |
| PID=$(cat $PID_FILE) | |
| # 检查进程是否在运行 | |
| if ps -p $PID > /dev/null | |
| then | |
| echo "$DAEMON_NAME is running." | |
| else | |
| echo "$DAEMON_NAME is not running." | |
| fi | |
| else | |
| echo "$DAEMON_NAME is not running." | |
| fi | |
| } | |
| # 根据输入参数选择执行哪个函数 | |
| case "$1" in | |
| start) | |
| start | |
| ;; | |
| stop) | |
| stop | |
| ;; | |
| status) | |
| status | |
| ;; | |
| restart) | |
| # 重启守护进程 | |
| stop | |
| start | |
| ;; | |
| *) | |
| # 如果参数不符合预期,显示用法 | |
| echo "Usage: $0 {start|stop|status|restart}" | |
| exit 1 | |
| esac | |