File tree Expand file tree Collapse file tree 3 files changed +525
-1
lines changed Expand file tree Collapse file tree 3 files changed +525
-1
lines changed Original file line number Diff line number Diff line change 1
1
#! /bin/bash
2
- # Control script for a Python daemon
2
+ # 守护进程控制脚本
3
3
4
+ # 定义守护进程 Python 脚本的路径
4
5
DAEMON_PATH=" ./src/daemon_process.py"
6
+ # 定义守护进程的名称
5
7
DAEMON_NAME=" DaemonProcess"
8
+ # 定义日志文件的路径
6
9
LOG_FILE=" ./logs/$DAEMON_NAME .log"
10
+ # 定义守护进程的 PID 文件路径,用于存储进程号
7
11
PID_FILE=" ./run/$DAEMON_NAME .pid"
8
12
13
+ # 启动守护进程的函数
9
14
start () {
10
15
echo " Starting $DAEMON_NAME ..."
16
+ # 使用 nohup 命令在后台运行 Python 脚本,并将输出重定向到日志文件
11
17
nohup python3 $DAEMON_PATH > $LOG_FILE 2>&1 &
18
+ # 将守护进程的 PID 写入文件
12
19
echo $! > $PID_FILE
13
20
echo " $DAEMON_NAME started."
14
21
}
15
22
23
+ # 停止守护进程的函数
16
24
stop () {
17
25
if [ -f $PID_FILE ]; then
26
+ # 如果 PID 文件存在,读取 PID
18
27
PID=$( cat $PID_FILE )
19
28
echo " Stopping $DAEMON_NAME ..."
29
+ # 使用 kill 命令停止进程
20
30
kill $PID
21
31
echo " $DAEMON_NAME stopped."
32
+ # 删除 PID 文件
22
33
rm $PID_FILE
23
34
else
24
35
echo " $DAEMON_NAME is not running."
25
36
fi
26
37
}
27
38
39
+ # 检查守护进程状态的函数
28
40
status () {
29
41
if [ -f $PID_FILE ]; then
30
42
PID=$( cat $PID_FILE )
43
+ # 检查进程是否在运行
31
44
if ps -p $PID > /dev/null
32
45
then
33
46
echo " $DAEMON_NAME is running."
@@ -39,6 +52,7 @@ status() {
39
52
fi
40
53
}
41
54
55
+ # 根据输入参数选择执行哪个函数
42
56
case " $1 " in
43
57
start)
44
58
start
@@ -50,10 +64,12 @@ case "$1" in
50
64
status
51
65
;;
52
66
restart)
67
+ # 重启守护进程
53
68
stop
54
69
start
55
70
;;
56
71
* )
72
+ # 如果参数不符合预期,显示用法
57
73
echo " Usage: $0 {start|stop|status|restart}"
58
74
exit 1
59
75
esac
You can’t perform that action at this time.
0 commit comments