有一个很好的库可以完成这一功能,可惜因为文档少所以网上例子不太多
库名:python-daemon
可以通过Pip来安装
最简单的使用方式
当然代码块中最好放一个长时间执行并写日志到某个路径的代码,方便观察代码的执行情况import daemon with daemon.DaemonContext(): print "your code"
简单但是缺乏必要的控制,比如 如果我们想保证无论多次执行程序都只保证系统内只有一个改程序的进程的话就需要pid文件来控制
这时候可以使用这个库带的另一个类
DaemonRunnerimport os import time from daemon.runner import DaemonRunner _base_path="/tmp/" class MyApp(object): stdin_path = "/dev/null" stdout_path = os.path.join(_base_path, "myapp.stdout") stderr_path = os.path.join(_base_path, "myapp.stderr") pidfile_path = os.path.join(_base_path, "myapp.pid") pidfile_timeout = 5 def run(self): for i in range(10): print i time.sleep(5) if __name__ == '__main__': run = DaemonRunner(MyApp()) run.do_action()
例如这样
就可以通过
python test.py start 来启动daemon进程
python test.py stop 来停止daemon进程
并且可以通过/tmp/myapp.pid来查看进程的pid
这篇博客介绍了如何使用python-daemon库将Python脚本运行在daemon模式下。虽然该库文档较少,但通过Pip安装后,可以轻松创建守护进程。为了确保系统中仅有一个进程,博客提到了利用pid文件进行控制。
398

被折叠的 条评论
为什么被折叠?



