我有一个进程正在运行,我需要发送HUP信号并确认它是否完成。如何检查hup信号是否完成日志解析以外的进程?
pkill HUP [process]
我做到了目前使用的日志文件,但也有很多事情,我需要照顾..
相同的日志文件被更新与HUP完成消息100倍,我不得不解析所做的最新HUP等等
是否有任何标志集或系统事件集如果联合王国解雇和完成?
有没有人在做这样的检查,如在进程中触发hup信号,并检查它是否真的完成了?
感谢答复
我有一个进程正在运行,我需要发送HUP信号并确认它是否完成。如何检查hup信号是否完成日志解析以外的进程?
pkill HUP [process]
我做到了目前使用的日志文件,但也有很多事情,我需要照顾..
相同的日志文件被更新与HUP完成消息100倍,我不得不解析所做的最新HUP等等
是否有任何标志集或系统事件集如果联合王国解雇和完成?
有没有人在做这样的检查,如在进程中触发hup信号,并检查它是否真的完成了?
感谢答复
您可以使用dtrace
来监视信号通过proc:::signal-handle
探头被处理。类似探针的列表可以在the dtrace proc provider documentation中找到。
下面是一个示例,它将监视由特定进程ID处理的SIGHUP
。 dtrace
相当灵活,并且还可以观察具有给定名称或用户标识的所有进程。
# cat sig.d
proc:::signal-handle
/pid == $1 && args[0]==SIGHUP/
{
printf("pid %d - %s - got signal %d at %Y\n", pid, execname, args[0], walltimestamp);
}
# sleep 300 &
1054
# dtrace -q -s sig.d 1054 &
1057
# kill -HUP 1054
# pid 1054 - sleep - got signal 1 at 2014 Mar 13 10:31:03
1054 Hangup
#
感谢评论,如果hup过程完成,是否有任何标志设置?是取决于进程处理还是任何签名句柄在完成后释放等? – user1145280
@ user1145280这取决于“完成”的含义。请举例说明您希望监控的接收信号的过程。 –
事实上,事情就像守护进程一样,为了进行配置更新,我做了 - 从我的源中选取-HUP
你是什么意思“完成其过程”?使用'dtrace'告诉你什么时候目标进程即将开始执行SIGHUP的信号处理程序非常简单。如果你想知道信号处理器什么时候完成某些事情,那有点困难,这取决于你想要寻找什么东西。 –
感谢您的评论,实际上这是恶魔进程,这是不是我的控制,在后台写日志,我只需要检查何时火灾东西写在日志中,解析它和检查完成,有没有更好的方法像任何系统事件或标志设置时,任何信号发送恶魔? – user1145280