我的系统 V 初始化脚本没有 return
my system V init script don't return
这是脚本内容,位于/etc/init。d/myserviced:
#!/lib/init/init-d-script
DAEMON="/usr/local/bin/myprogram.py"
NAME="myserviced"
DESC="The description of my service"
当我启动服务时(通过直接调用它或调用 sudo service myserviced start
),我可以看到程序 myprogram.py
运行,但它没有 return命令提示符。
我想一定是我理解错了什么,那是什么?
系统是 Debian,运行ning on Raspberry Pi。
经过一番努力,我终于解决了这个问题。主要有2个原因:
init-d-script
实际上调用了 start-stop-daemon
,它们不能很好地使用通过 --exec
选项指定的脚本。杀死脚本时,您应该只指定 --name
选项。然而,由于 init-d-script
总是填充 --exec
选项,它不能与脚本守护进程一起使用。 sysv脚本得自己写了
start-stop-daemon
不会神奇地守护您提供的东西。因此提供给 start-stop-daemon
的可执行文件本身应该是守护进程,而不是常规程序。
这是脚本内容,位于/etc/init。d/myserviced:
#!/lib/init/init-d-script
DAEMON="/usr/local/bin/myprogram.py"
NAME="myserviced"
DESC="The description of my service"
当我启动服务时(通过直接调用它或调用 sudo service myserviced start
),我可以看到程序 myprogram.py
运行,但它没有 return命令提示符。
我想一定是我理解错了什么,那是什么?
系统是 Debian,运行ning on Raspberry Pi。
经过一番努力,我终于解决了这个问题。主要有2个原因:
init-d-script
实际上调用了start-stop-daemon
,它们不能很好地使用通过--exec
选项指定的脚本。杀死脚本时,您应该只指定--name
选项。然而,由于init-d-script
总是填充--exec
选项,它不能与脚本守护进程一起使用。 sysv脚本得自己写了start-stop-daemon
不会神奇地守护您提供的东西。因此提供给start-stop-daemon
的可执行文件本身应该是守护进程,而不是常规程序。