![SysVinit 服务的运行方式与脚本本身不同](https://linux22.com/image/189477/SysVinit%20%E6%9C%8D%E5%8A%A1%E7%9A%84%E8%BF%90%E8%A1%8C%E6%96%B9%E5%BC%8F%E4%B8%8E%E8%84%9A%E6%9C%AC%E6%9C%AC%E8%BA%AB%E4%B8%8D%E5%90%8C.png)
我正在 Android 上使用 Linux Deploy 并尝试为 SysVinit 创建服务。我使用的发行版是 Debian buster。我写了以下脚本。问题是:当它作为脚本本身运行时,它可以完美运行,但不能作为服务运行。如果我运行service clash start
or service clash stop
,它会起作用,但不会service clash restart
。 SysVinit 在启动时正确运行它。所以唯一的问题是案件restart
。它运行stop
然后退出而不触及以下内容start
。我应该怎么做才能解决这个问题?
1 #!/bin/zsh
2 # Default-Start: 2 3 4 5
3 # Default-Stop: 0 1 6
4 # description: Clash service
5
6 Clash=/usr/local/bin/clash
7 CfgDir=/etc/clash/
8
9 stop(){
10 if [ -n "$(pgrep clash)" ]
11 then
12 for pid in $(pgrep clash)
13 do
14 kill $pid
15 done
16 fi
17 }
18
19 start(){
20 nohup $Clash -d $CfgDir &!
21 }
22
23 test -x $Clash || exit 0
24
25 case $1 in
26 start)
27 start
28 ;;
29
30 stop)
31 stop
32 ;;
33
34 restart)
35 stop
36 start
37 ;;
38
39 *)
40 echo "Usage: $0 {start|stop|restart}"
41 exit 1
42 esac
43
44 exit 0