1. 程式人生 > >殭屍程序和如何刪除殭屍程序

殭屍程序和如何刪除殭屍程序

當一個子程序結束後,他的父程序沒有等待他(wait waitpid)清除他的所有資源時,它就變成一個殭屍程序。

在linux系統中,在每個程序退出的時候,核心釋放該程序所有的資源,包括開啟的檔案,佔用的記憶體等。但是仍然為其保留一定的資訊(包括程序號the process ID,退出狀態the termination status of the process,執行時間the amount of CPU time taken by the process等)。直到父程序通過wait / waitpid來取時才釋放. 但這樣就導致了問題,如果程序不呼叫wait / waitpid的話,那麼保留的那段資訊就不會釋放,其程序號就會一直被佔用,但是系統所能使用的程序號是有限的,如果大量的產生

僵死程序,將因為沒有可用的程序號而導致系統不能產生新的程序. 此即為殭屍程序的危害,應當避免。

那麼可以通過殺掉他的父程序來把殭屍程序一起殺掉。

ps -aux  其中的ppid 就是一個殭屍程序的父程序