我有一個進程正在運行,我需要發送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