我在Managing Signal Handling for daemons that fork()中找到了答案,對我正在做的事情非常有幫助。我不知道如何解決Perl:在分支子代中安裝信號處理程序,其執行者
「你會因此不需要安裝任何的信號處理在execed進程啓動時」
我沒有在那個啓動過程控制向上。有沒有辦法讓我強制從叉子的父母那裏得到exec
的某些信號手柄?
編輯: {
我正在寫一個Perl模塊來監視長時間運行的進程。取而代之的
system(<long-running cmd>);
你會使用
my_system(<ID>, <long-running cmd>);
我創建了一個<ID>
鎖定文件,不要讓其他my_system(<ID>...)
通過電話,如果有一個當前具有匹配ID運行。
上級分支/管理員<long-running cmd>
並且在終止時清除鎖定文件。我想讓孩子自給自足,以便父母可以退出(或者如果父母得到kill -9
,孩子可以自己照顧自己)。
}
很好的答案。我希望能有辦法以某種方式將處理函數加載到正在運行的程序中......太糟糕了,這是不可能的。另外,lockfile的這個方案几乎可以隨時爲我的情況工作。唯一的問題是有很多計算機共享一個nfs文件系統。因此,如果從A啓動了鎖,則B無法查看它是否仍在運行,或者它是否是掛鎖文件。 – ajwood 2011-04-02 14:30:27