我有一个 python 应用程序,该应用程序使用扭曲的框架。

我利用了扭曲产生的pidfile中存储的值。启动器脚本会检查它是否存在,如果pidfile已经存在,则不会生成守护进程。

但是,twist不会在收到SIGKILL信号时删除.pid文件。这使启动器脚本认为守护程序已在运行。

我意识到停止守护程序的正确方法是使用SIGTERM信号,但是问题是,启动守护程序的用户注销后,守护程序永远不会收到SIGTERM信号,因此显然它被SIGKILL杀死了。这意味着一旦用户注销,他将永远无法再次启动守护程序,因为pidfile仍然存在。

在这种情况下,有什么办法可以使该文件消失?

最佳答案

signal(2)手册页:



因此,该进程无法响应该信号运行任何清除代码。通常,您仅使用SIGKILL终止不会响应SIGTERM(可以捕获)而退出的进程。

关于python-twisted和SIGKILL,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/13306359/

10-10 16:38