python - 服务器重启后守护进程的 PID 文件挂起

标签 python linux sigterm

我有一些守护进程使用 PID 文件来防止并行执行我的程序。我已经设置了一个信号处理程序来捕获 SIGTERM 并进行必要的清理,包括 PID 文件。当我使用“kill -s SIGTERM #PID”进行测试时,这非常有效。但是,当我重新启动服务器时,PID 文件仍然存在,阻止守护进程启动。据我了解,当服务器关闭时,SIGTERM 会发送到所有进程。我是否应该在我的守护程序中捕获另一个信号(SIGINT、SIGQUIT?)?

最佳答案

在你的pid文件上使用flock(或lockf),如果成功,你可以重写pid文件并继续。

This SO answer有一个很好的例子说明如何做到这一点。

关于python - 服务器重启后守护进程的 PID 文件挂起,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2134732/

相关文章:

linux - scp 命令不适用于在 Linux 中复制目录

tomcat - Heroku Java Tomcat ServletContextListener 不在 slugc 或重启时调用 contextDestroyed

python - 在 Celery 工作人员中捕获 Heroku SIGTERM 以优雅地关闭工作人员

python - 无法在python列表中进行编码和解码

python - 我应该在 Pygame 中使用什么 gui 工具包?

linux - 如何在 Azure Linux VM 上转移域和创建子域

c - 使用 waitpid() 后,我的 WIFSIGNALED()/WTERMSIG() 宏出现问题

python - 使用python在一行中打印多个变量

python 从 url 列表中抓取网页

linux - Eclipse 与 powerpc-linux-gcc 可能吗?