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 | |