假设您的守护程序具有某种持续运行的方式(某些事件循环,扭曲的事件等等),您可以尝试使用upstart
。
这是一个假设的Python服务的新贵配置示例:
description "My service"
author "Some Dude <blah@foo.com>"
start on runlevel [234]
stop on runlevel [0156]
chdir /some/dir
exec /some/dir/script.py
respawn
如果将其另存为script.conf,则只需/etc/init
简单地做一次
$ sudo initctl reload-configuration
$ sudo start script
您可以使用停止它stop script
。上面的新贵conf所说的是在重新启动时启动此服务,如果该服务终止,也将其重新启动。
至于信号处理-您的过程应该自然响应SIGTERM
。默认情况下,除非您专门安装了自己的信号处理程序,否则应进行处理。