【发布时间】:2014-03-26 06:34:07
【问题描述】:
我想创建一个永远运行的程序,一次只运行一个实例,并且可以使用 init.d 脚本启动。 python-daemon 似乎是一个不错的选择,因为它是 PEP 3143 的参考实现。
无论如何,我无法理解 PID 锁定文件的用途,因为它不会阻止程序运行两次。
我是否应该手动检查 init.d 脚本中是否存在锁定文件(基于“/etc/init.d/skeleton”)?还有我应该怎么杀死它?获取 PID 文件中的 PID 号并发送 SIGTERM ?
非常感谢。
【问题讨论】:
-
是什么让你这么说:“PID 锁定文件的用途,因为它不会阻止程序运行两次”。如果PID文件被锁定,取决于锁的实现,它可以阻止程序运行两次(第二个实例不会得到锁)。
-
而且,是的,使用 PID 文件中的 PID 来杀死守护进程。
-
我正在查看 htop 中的进程,两次启动后我看到了两个进程。其中一个正在睡觉,这不是我预期的行为。
-
如果一个人正在睡觉,它可能正在等待锁定 - 实际上,进程已启动但未运行。
标签: python linux init.d python-daemon