SysVinit 서비스는 스크립트 자체와 다르게 작동합니다.

SysVinit 서비스는 스크립트 자체와 다르게 작동합니다.

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

관련 정보