fork 和 sigchld 坑
最近有個項目,一個deamon進程,一個幹活進程。deamon 進程會捕獲SIGCHLD信號如果幹活進程down掉了,deamon會收到這個信號並且重新fork幹活進程。
最近發現一個問題是 deamon進程fork了好幾個幹活進程。團隊的人調查問題,一度懷疑是不同的linux內涵對信號處理不同。後來我發現如果幹活進程調用了system函數,system會fork一個子進程,這個子進程昨晚事情就退出了,導致deamon進程收到一次SIGCHLD信號。
最後更新:2017-04-03 22:15:30