我使用此代码来守护我的应用程序。它允许您
start/stop/restart使用以下命令来编写脚本。
python myscript.py startpython myscript.py stoppython myscript.py restart
除此之外,我还有一个init.d脚本来控制我的服务。这使您可以在操作系统启动时自动启动服务。
这是一个简单的示例,可以助您一臂之力。只需将代码移到一个类中,然后从
run内部的函数中调用它即可
MyDeamon。
import sysimport timefrom daemon import Daemonclass YourCode(object): def run(self): while True: time.sleep(1)class MyDaemon(Daemon): def run(self): # Or simply merge your pre with MyDaemon. your_pre = YourCode() your_pre.run()if __name__ == "__main__": daemon = MyDaemon('/tmp/daemon-example.pid') if len(sys.argv) == 2: if 'start' == sys.argv[1]: daemon.start() elif 'stop' == sys.argv[1]: daemon.stop() elif 'restart' == sys.argv[1]: daemon.restart() else: print "Unknown command" sys.exit(2) sys.exit(0) else: print "usage: %s start|stop|restart" % sys.argv[0] sys.exit(2)暴发户
如果您正在运行使用Upstart的操作系统(例如CentOS
6)-您也可以使用Upstart来管理服务。如果您使用Upstart,则可以按原样保留脚本,只需在下面添加如下内容
/etc/init/my-service.conf
start on started sshdstop on runlevel [!2345]exec /usr/bin/python /opt/my_service.pyrespawn
然后,您可以使用启动/停止/重新启动来管理服务。
例如
start my-servicestop my-servicerestart my-service
这里提供了使用新贵的更详细的示例。



