歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> 關於Linux >> 僵屍進程簡析

僵屍進程簡析

日期:2017/3/1 16:34:58   编辑:關於Linux
僵屍進程簡析 僵屍進程就是父進程fork之後並沒有wait子進程。在子進程退出的時候,內核釋放該進程所有的資源,比如文件描述符,內存,等等,但是依然為該進程保留一定的信息,只有該進程的父進程wait之後才會釋放掉這些保留的信息。如果父進程沒有wait,那麼子進程就變成了僵屍進程。在高並發的服務器中,僵屍進程會有很大的危害。如果僵屍進程過多,那麼就會有大量的進程號被僵屍進程占用,但是系統所能使用的進程是有限的。如果僵屍進程多到連新進程的進程號都沒法提供,那麼服務器就會一直處於拒絕狀態了。 www.2cto.com 但是高並發服務器的父進程肯定會fork許多子進程,而且有可能父進程不需要知道任何子進程的結束信息,如果還wait每個子進程的話,肯定會造成資源的大量良妃。針對這種情況,有一個非常簡單卻非常有效的辦法。當子進程exit()的時候,內核會向父進程發送一個SIGCHLD信號。將這個信號的處理方式設置為SIG_IGN,那麼就可以讓父進程忽略子進程發送的SIGCHLD信號了。
Copyright © Linux教程網 All Rights Reserved