藍森林首頁 | 返回主頁 | 本站地圖 | 站內搜索 | 聯繫信箱 |
 您目前的位置:首頁 > 自由軟件 > 技術交流 > 應用編程


    

藍森林 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編程實現進程控制的問題--高手請賜教

我認為最好在子進程中作充分的判斷,防止其死掉或超時。



Copyright © 1999-2000 LSLNET.COM. All rights reserved. 藍森林網站 版權所有。 E-mail : webmaster@lslnet.com