저는 Android에서 Linux Deploy를 사용하고 있으며 SysVinit용 서비스를 생성하려고 합니다. 제가 사용하는 배포판은 Debian Buster입니다. 나는 다음 스크립트를 작성했습니다. 문제는 스크립트 자체로 실행하면 완벽하게 실행되지만 서비스로는 실행되지 않는다는 것입니다. 실행하면 작동 service clash start
하지만 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