python-twisted和SIGKILL

我有一个使用扭曲框架的python应用程序.

我利用存储在twistd生成的pidfile中的值.启动程序脚本会检查它是否存在,如果pidfile已存在,则不会生成守护程序进程.

但是,twistd在获取SIGKILL信号时不会删除.pid文件.这使得启动程序脚本认为守护程序已在运行.

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

在这种情况下,有什么方法可以让文件消失吗?

解决方法:

从signal(2)手册页:

The signals SIGKILL and SIGSTOP cannot be caught or ignored.

因此,该进程无法运行任何清理代码来响应该信号.通常,您只使用SIGKILL来终止不响应SIGTERM(可以捕获)的进程.

上一篇:2022.9.3 阿里笔试AK贴


下一篇:爬虫天津链家二手房数据(requests + BeautifulSoup)