这是脚本内容,位于/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
运行,但它没有返回到命令提示符。
我想必定会有一些我误解的东西,那又是什么呢?
系统是Debian,在Raspberry Pi上运行。
答案 0 :(得分:0)
经过更多的工作,我终于解决了这个问题。主要有两个原因:
init-d-script
实际上调用了start-stop-daemon
,他们不能通过--exec
选项指定的脚本运行良好。杀死脚本时,您应该只指定--name
选项。但是,由于init-d-script
始终填充--exec
选项,因此它不能与脚本守护程序一起使用。我必须自己编写sysv脚本。
start-stop-daemon
没有神奇地守护你所提供的东西。因此,提供给start-stop-daemon
的可执行文件应该自己守护,但不是常规程序。