【系統】 殭屍程式
1 什麼是殭屍程式:
當子程式比父程式先結束,而父程式又沒有回收子程式,釋放子程式佔用的資源,此時子程式將成為一個殭屍程式。如果父程式先退出
,子程式被init接管,子程式退出後init會回收其佔用的相關資源。
2 怎樣來清除殭屍程式:
1.改寫父程式,在子程式死後要為它收屍。具體做法是接管SIGCHLD訊號。子程式死後,會傳送SIGCHLD訊號給父程式,父程式收到此訊號後,執行waitpid()函式為子程式收屍。這是基於這樣的原理:就算父程式沒有呼叫wait,核心也會向它傳送SIGCHLD訊息,儘管對的預設處理是忽略,如果想響應這個訊息,可以設定一個處理函式。
2.把父程式殺掉。父程式死後,殭屍程式成為"孤兒程式",過繼給1號程式init,init始終會負責清理殭屍程式.它產生的所有殭屍程式也跟著消失。
3 殭屍程式的危害:
在Unix系統管理中,當用ps命令觀察程式的執行狀態時,經常看到某些程式的狀態列為defunct,這就是所謂的“殭屍”程式。“殭屍”程式是一個早已死亡的程式,但在程式表(processs table)中仍佔了一個位置(slot)。由於程式表的容量是有限的,所以,defunct程式不僅佔用系統的記憶體資源,影響系統的效能,而且如果其數目太多,還會導致系統癱瘓。
這裡介紹linux 環境下的處理殭屍程式的方法:
使用 ps -efl|awk '$2~/Z/{print}' 查詢殭屍程式
[root@rac3 ~]# ps -efl|awk '$2~/Z/{print}'
0 Z root 28212 28201 0 85 0 - 0 exit Sep25 ? 00:00:00 [xrdb]
或者使用如下語句
[root@rac3 ~]# ps -A -ostat,ppid,pid,cmd | grep -e '^[Zz]'
Z 28201 28212 [xrdb]
如果殭屍程式很多可以使用如下語句:
ps -efl | awk '$2~/Z/{print“kill -9 ” $4,$5}'
生成殺程式的指令碼。
如果kill子程式的無效,則kill 其父程式來解決問題
[root@rac3 ~]# kill -HUP 28201
[root@rac3 ~]# ps -A -ostat,ppid,pid,cmd | grep -e '^[Zz]'
[root@rac3 ~]# top
top - 19:38:50 up 21 days, 3:42, 1 user, load average: 0.00, 0.00, 0.00
Tasks: 173 total, 2 running, 170 sleeping, 0 stopped, 0 zombie
Cpu(s): 0.3%us, 0.0%sy, 0.0%ni, 99.7%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st
Mem: 4044784k total, 3606476k used, 438308k free, 208260k buffers
Swap: 4192956k total, 0k used, 4192956k free, 2689704k cached
上述方法只在測試環境實施,如在生產環境,請評估其安全性
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/22664653/viewspace-709189/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Linux 系統中殭屍程式Linux
- Linux系統殭屍程式詳解Linux
- 殭屍程式
- hp-unix 殭屍程式導致系統崩潰
- 什麼是殭屍程式,如何找到並殺掉殭屍程式?
- fork和殭屍程式
- Linux 殭屍程式Linux
- 殺死殭屍程式
- 殭屍程式,孤兒程式
- 殭屍程式和孤兒程式
- Linux中殭屍程式是什麼意思?怎麼檢視殭屍程式?Linux
- 物聯網教程Linux系統程式設計——特殊程式之殭屍程式Linux程式設計
- 檢視 Linux 殭屍程式Linux
- Linux殭屍程式處置Linux
- Perl程式:殭屍程式和孤兒程式
- 子程式、孤兒程式,殭屍程式, init程式
- linux系統程式設計之程式(三):程式複製fork,孤兒程式,殭屍程式Linux程式設計
- 系統中出現大量不可中斷程式(D)和殭屍程式(Z)怎麼辦?
- Linux 中殭屍程式詳解Linux
- Go Exec 殭屍與孤兒程式Go
- Linux如何殺掉殭屍程式Linux
- 檢視並殺死殭屍程式
- 案例:系統中出現大量不可中斷程式(D)和殭屍程式(Z)怎麼辦?
- 什麼是殭屍程式以及如何處理
- JaCoCo助您毀滅線上殭屍程式碼
- iOS殭屍物件之研究iOS物件
- Linux 效能優化之 CPU 篇 ----- 殭屍程式Linux優化
- Linux程式管理、程式建立、執行緒實現、殭屍程式Linux執行緒
- 什麼是殭屍網路
- Unity 植物大戰殭屍(一)Unity
- 孤兒程序和殭屍程序
- 關於LINUX殭屍程式的出現和原理Linux
- Mirai殭屍網路重出江湖AI
- 植物大戰殭屍 雜交版
- 植物大戰殭屍-雜交版
- PHP 多程式之孤兒和殭屍簡單講解PHP
- UNIXC002 程式資源的回收、孤兒程式和殭屍程式
- mysql連線池爆滿,釋放程式長連線殭屍程式MySql