如何知道是否已处理SIGHUP信号?

时间:2016-03-09 10:26:13

标签: python-2.7 signals

我有一个python脚本,它将SIGHUP信号发送到另一个进程,与我的脚本无关(不是孩子,不可更改)。当进程收到SIGHUP时,它会启动“轻启动”,重新加载配置文件并更新信息。 “重启”不会停止进程,所以我不能等待退出代码。我知道我可以查看进程日志文件以了解信号是否被处理,但是对于脚本流来说这太重了,太慢了。

我想知道是否可以使用其他方法警告我的进程已收到SIGHUP?

1 个答案:

答案 0 :(得分:0)

inotify-tools C库可以解决您的问题。通过它的安装,您可以访问新命令:inotifywaitinotifywatch

假设你有这个 /tmp/foo.bar 文件。您可以使用以下命令开始监视此文件的任何读取访问权限:

inotifywait --event access /tmp/foo.bar

然后,执行cat /tmp/foo.bar,程序将返回。

正如我所说,它是一个C库,我想还有其他语言实现。所以请随意使用这个Bash示例,并使用此库编写自己的程序。