2014-03-05 34 views
0

我有一个进程正在运行,我需要发送HUP信号并确认它是否完成。如何检查hup信号是否完成日志解析以外的进程?

pkill HUP [process] 

我做到了目前使用的日志文件,但也有很多事情,我需要照顾..
相同的日志文件被更新与HUP完成消息100倍,我不得不解析所做的最新HUP等等

是否有任何标志集或系统事件集如果联合王国解雇和完成?

有没有人在做这样的检查,如在进程中触发hup信号,并检查它是否真的完成了?

感谢答复

+0

你是什么意思“完成其过程”?使用'dtrace'告诉你什么时候目标进程即将开始执行SIGHUP的信号处理程序非常简单。如果你想知道信号处理器什么时候完成某些事情,那有点困难,这取决于你想要寻找什么东西。 –

+0

感谢您的评论,实际上这是恶魔进程,这是不是我的控制,在后台写日志,我只需要检查何时火灾东西写在日志中,解析它和检查完成,有没有更好的方法像任何系统事件或标志设置时,任何信号发送恶魔? – user1145280

回答

0

您可以使用dtrace来监视信号通过proc:::signal-handle探头被处理。类似探针的列表可以在the dtrace proc provider documentation中找到。

下面是一个示例,它将监视由特定进程ID处理的SIGHUPdtrace相当灵活,并且还可以观察具有给定名称或用户标识的所有进程。

# 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 
# 
+0

感谢评论,如果hup过程完成,是否有任何标志设置?是取决于进程处理还是任何签名句柄在完成后释放等? – user1145280

+0

@ user1145280这取决于“完成”的含义。请举例说明您希望监控的接收信号的过程。 –

+0

事实上,事情就像守护进程一样,为了进行配置更新,我做了 - 从我的源中选取-HUP ,我可以在日志中看到类似于HUP的消息:开始和之后,bla bla更新它说HUP:done now ...因为在我手中没有控制权,我只能在发射HUP之后解析日志,直到它发出HUP:done ..这个日志解析的不确定事件..我想知道是否还有其他的事情可以完成..?像你说的信号东西等 – user1145280

相关问题