|
藍森林 http://www.lslnet.com 2006年6月6日 10:18
關於Unix下C編程實現進程控制的問題--高手請賜教
我現在需要對在程序中拋出的多個進程進行控制,即判斷拋出的進程是否死掉,如果死掉了則殺之,請問各位大哥如何用C編程實現這些控制,多謝了! |
關於Unix下C編程實現進程控制的問題--高手請賜教
如果是殭屍進程,你也沒有辦法kill啊,你只有從程序上控制不生成殭屍進程。 |
關於Unix下C編程實現進程控制的問題--高手請賜教
用pid_t waitpid(pid_t pid, int *stat_loc, int options);或
pid_t wait(int *stat_loc);在父進程中做這個調用。
如果是殭屍進程,init會收養的。 |
關於Unix下C編程實現進程控制的問題--高手請賜教
也可以使用sigaction函數使不產生殭屍進程
如果讓init收養的話也是要父進程結束後init才會終止它的狀態 |
關於Unix下C編程實現進程控制的問題--高手請賜教
多謝各位大蝦指教!
不過我想知道:
拋出的子進程如果在運行過程中因出現問題而死掉或超時(不是成為殭屍進程),我如何得到子進程的狀態信息,從而週期性的判斷子進程是否死掉或超時,進而採取處理措施。請各位大蝦能給出解決的方法。
還有就是:如果用wait()或waitpid(),父進程是不是一直等到子進程結束才繼續執行下面的代碼?
問題比較多,望各位大蝦多多幫忙,小弟多謝了! |
關於Unix下C編程實現進程控制的問題--高手請賜教
在一個子進程終止前,wait使調用者阻塞,waitpid有一選項,可以使調用者不阻塞! |
關於Unix下C編程實現進程控制的問題--高手請賜教
我認為最好在子進程中作充分的判斷,防止其死掉或超時。 |
| |