1樓:河南新華電腦學院
inux 允許程序查詢核心以獲得其父程序的 pid,或者其任何子程序的執行狀態。例如,程序可以建立一個子程序來執行特定的任務,然後呼叫諸如 wait() 這樣的一些庫函式檢查子程序是否終止。如果子程序已經終止,那麼,它的終止代號將告訴父程序這個任務是否已成功地完成。
為了遵循這些設計原則,不允許 linux 核心在程序一終止後就丟棄包含在程序描述符欄位中的資料。只有父程序發出了與被終止的程序相關的 wait() 類系統呼叫之後,才允許這樣做。這就是引入僵死狀態的原因:
儘管從技術上來說程序已死,但必須儲存它的描述符,直到父程序得到通知。
如果一個程序已經終止,但是它的父程序尚未呼叫 wait() 或 waitpid() 對它進行清理,這時的程序狀態稱為僵死狀態,處於僵死狀態的程序稱為殭屍程序(zombie process)。任何程序在剛終止時都是殭屍程序,正常情況下,殭屍程序都立刻被父程序清理了。
2樓:
在超級使用者root 下面,使用ps -al 命令,看看能否找到殭屍程序的名字?若能夠找到其名字的話,使用 kill -9 該程序的程序號。
3樓:匿名使用者
找到殭屍程序,殺死即可。
linux怎麼處理殭屍程序
4樓:碼大牛
一般殭屍程序很難直接kill掉,不過您可以kill殭屍爸爸。父程序死後,殭屍程序成為」孤兒程序」,過繼給1號程序init,init始終會負責清理殭屍程序.它產生的所有殭屍程序也跟著消失。
ps -e -o ppid,stat | grep z | cut -d」 」f2 | xargs kill -9
或kill -hup `ps -a -ostat,ppid | grep -e 』^zz]『 awk 』』
我將nova-novncproxy stop後再start,殭屍程序即消失,問題解決。
另外子程序死後,會傳送sigchld訊號給父程序,父程序收到此訊號後,執行waitpid()函式為子程序收屍。就是基於這樣的原理:就算父程序沒有呼叫wait,核心也會向它傳送sigchld訊息,而此時,儘管對它的預設處理是忽略,如果想響應這個訊息,可以設定一個處理函式。
5樓:匿名使用者
可以通過kill命令直接關閉程序。
kill -9 process_id
注:process_id請使用查詢到的殭屍程序號替換。
linux如何殺死殭屍程序 詳細�0�3
linux下如何殺死殭屍程序
6樓:匿名使用者
你先試試看kill 9 能不能殺死。
在我的印象裡面 kill 9 和 kill 15 都不能殺死殭屍程序。
我記得解決方法是kill掉殭屍程序的父程序,這樣殭屍程序就會變成孤兒程序,然後init就會給他收屍了。
你能告訴我怎麼 一個一個殺嗎? 除了kill掉父程序。
要是告訴我的話 我就能告訴你怎麼集體收屍。
我一般都是重啟。安靜了。
linux中如何殺掉殭屍程序
7樓:吉祥二進位制
1、使用top命令就可以檢視到殭屍程序。
2、檢視具體程序pid
#ps -a -o stat,ppid,pid,cmd |grep -e "^zz]"
說明:不是查不出殭屍程序,是因為我重啟了系統,沒有殭屍程序。
3、殺死殭屍程序。
#kill -9 pid號。
8樓:仁斯實嘉澤
其實殭屍程序的資源已經收回,只是在程序描述表裡面還在而已,所以除非重啟系統,否則你是殺不掉殭屍程序的,他們已經被init程序管理。
可以不必理會。
linux中用什麼命令能終止殭屍程序?請高手賜教
9樓:匿名使用者
用top看有無,如。
tasks: 63 total, 1 running, 61 sleeping, 0 stopped, 1 zombie
找出zombie process:
ps aux | awk ''grep -w z可以得到類似z+ 5067的輸出。
kill -9 5067
linux的殭屍程序是怎麼出現的
10樓:原飛
當然會成為殭屍程序,你的c、d子程序比父程序先結束,在fork ()execve()過程中,假設子程序結束時父程序仍存在,而父程序fork()之前既沒安裝sigchld訊號處理函式呼叫waitpid()等待子程序結束,又沒有顯式忽略該訊號,則子程序成為殭屍程序,無法正常結束,此時即使是root身份kill -9也不能殺死殭屍程序。補救辦法是殺死殭屍程序的父程序(殭屍程序的父程序必然存在),殭屍程序成為"孤兒程序",過繼給1號程序init,init始終會負責清理殭屍程序。
殭屍程序的避免:
(1) 父程序通過wait和waitpid等函式等待子程序結束,這會導致父程序掛起。
(2) 如果父程序很忙,那麼可以用signal函式為sigchld安裝handler,因為子程序結束後, 父程序會收到該訊號,可以在handler中呼叫wait**。
(3) 如果父程序不關心子程序什麼時候結束,那麼可以用signal(sigchld, sig_ign) 通知核心,自己對子程序的結束不感興趣,那麼子程序結束後,核心會**, 並不再給父程序傳送訊號。
(4) 還有一些技巧,就是fork兩次,父程序fork一個子程序,然後繼續工作,子程序fork一 個孫程序後退出,那麼孫程序被init接管,孫程序結束後,init會**。不過子程序的** 還要自己做。
關於UBUNTU linux與windowsxp雙系統的問題
如果說grub2裝了xp的分割槽 那麼假設你的xp系統分割槽完好 想回到xp系統你就做一個pe盤 找一個磁碟管理軟體 用裡面的修復引導你就能回到xp 然後你各種嫻熟操作即可 無論是光碟還是映象光碟,都有兩個選項 1.在現有的xp系統下安裝。2.與xp並列安裝。我試過兩種。第一種最容易。如果不想要ub...
求 Ubuntu linux 指南 基礎篇
ubuntu自帶了一個debian系統手冊。就是中文的,可以看看啊!誰有好的ubuntu入門教程 關於linux的基礎知識和架構 最好能儘量適用於12.10 鳥哥的linux私房菜,另外,本人還有分ubuntu菜鳥使用手冊合集,如果想要,留下郵箱。ubuntu適合學習linux嗎,怎麼學 適合剛接觸...
ubuntu linux系統用什麼瀏覽器最好 ?用uc瀏覽器
樓主明顯是在打廣告!ubuntu預設是firefox的瀏覽器根本沒有必要換!而且uc什麼時候支援ubuntu了?linux系統bai 下,最受歡迎的系統是火狐,du用火狐會比較好zhi,當然,如果你有dao自己喜歡的內瀏覽器,且該瀏覽器恰好又 uc?uc連pc版都沒有會有linux版?ubuntu下...