我有一个 python 应用程序,该应用程序使用扭曲的框架。
我利用了扭曲产生的pidfile中存储的值。启动器脚本会检查它是否存在,如果pidfile已经存在,则不会生成守护进程。
但是,twist不会在收到SIGKILL
信号时删除.pid文件。这使启动器脚本认为守护程序已在运行。
我意识到停止守护程序的正确方法是使用SIGTERM
信号,但是问题是,启动守护程序的用户注销后,守护程序永远不会收到SIGTERM
信号,因此显然它被SIGKILL
杀死了。这意味着一旦用户注销,他将永远无法再次启动守护程序,因为pidfile仍然存在。
在这种情况下,有什么办法可以使该文件消失?
最佳答案
从signal(2)
手册页:
因此,该进程无法响应该信号运行任何清除代码。通常,您仅使用SIGKILL
终止不会响应SIGTERM
(可以捕获)而退出的进程。
关于python-twisted和SIGKILL,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/13306359/