僵尸進程111

Linux 系統中的進程可能處于如下狀態中的一種:

D = 不可中斷的休眠
I = 空閑
R = 運行中
S = 休眠
T = 被調度信號終止
t = 被調試器終止
Z = 僵尸狀態

Interruptible Sleep,可中斷睡眠,在 ps 命令中顯示 S。處在這種睡眠狀態的進程是可以通過給它發送信號來喚醒的。
Uninterruptible Sleep,不可中斷睡眠,在 ps 命令中顯示 D。處在這種睡眠狀態的進程無法立即處理任何發送給它的信號,這也是無法用 kill 殺掉它的原因。

僵尸進程可以被操作系統pid 1進程回收,前提是僵尸進程父進程是pid 1的進程;
重啟或者殺死產生這些僵尸進程的父進程,問題就解決了;

Z狀態
  1. 檢查僵尸進程
top命令
當zombie前的數量不為0時,即系統內存在相應數量的僵尸進程。2. 查詢父進程ps -A -ostat,ppid,pid,cmd |grep -e '^[Zz]'3. 通過父進程殺死僵尸進程kill -HUP 僵尸進程父ID4. 一鍵殺死所有僵死進程
ps -A -ostat,ppid,pid,cmd | grep -e '^[Zz]' | awk -F" " '{ print $2 }' | xargs kill -HUP

實際使用

殺父進程kill -HUP
ps -A -ostat,ppid,pid,cmd |grep -e '^[Zz]'
ps -A -ostat,ppid,pid,cmd | grep -e '^[Zz]' | grep daemon_guard.sh | awk -F" " '{ print $2 }' | xargs kill -HUP殺子進程kill -9
ps -ef |grep wsssr  |grep -v grep |awk '{print $2}'|xargs kill -9

當你使用 kill -HUP 發送掛起信號(SIGHUP)給一個進程時,這通常會導致該進程終止。如果這個被信號殺死的進程是一個父進程,并且它有子進程在運行,那么這些子進程將會變為孤兒進程,其父進程PID會自動變為1(即init進程)。這是操作系統內核自動處理的,確保即使父進程不再存在,子進程也能被妥善管理。

簡而言之,kill -HUP 信號本身并不直接導致子進程的父進程變為1,而是父進程因收到該信號而終止這一行為,間接導致了子進程成為孤兒并被init進程接管。

D狀態

D狀態,也稱為不可中斷的睡眠狀態(Uninterruptible Sleep),是指進程正在等待某個資源(如磁盤I/O、網絡I/O或其他硬件操作)而暫時無法被調度執行的狀態。在這個狀態下,進程不響應信號,包括SIGKILL在內的大多數信號都無法中斷它,直到它等待的事件完成。以下是D狀態進程產生的幾種常見場景及處理方法:

產生原因:
I/O等待:進程可能在等待磁盤讀寫、網絡數據包到達等I/O操作完成。
鎖等待:進程可能在等待某個鎖,比如在多進程訪問共享資源時。
硬件交互:與硬件交互的操作,如磁盤檢查、硬件設備通信,可能導致進程進入D狀態。
NFS問題:當使用網絡文件系統(NFS)時,如果NFS服務器不可達或響應緩慢,訪問NFS文件的進程可能會進入D狀態。
處理方法:
診斷I/O問題:檢查是否有磁盤滿、硬件故障或網絡延遲等問題,使用如iotop、dmesg等工具輔助診斷。
檢查NFS狀態:如果是NFS相關問題,確保NFS服務器正常運行,使用ping、nfsstat等命令檢查。
強制重新掛載文件系統:如果是因為文件系統掛載問題,嘗試卸載再重新掛載有問題的文件系統。
系統日志:查看系統日志(如/var/log/messages或journalctl)以獲取更多關于進程為何進入D狀態的信息。
內核參數調整:在極端情況下,可能需要調整內核參數,如磁盤緩存相關的設置。
重啟服務或系統:作為最后手段,如果上述方法無效,可以考慮重啟受影響的服務或整個系統,但這可能會導致未保存的數據丟失。
避免使用kill -9:由于D狀態的進程不響應信號,通常不建議使用kill -9,因為這可能留下資源未被正確清理。但在確認無其他選項時,可考慮使用。
在處理D狀態進程時,重要的是先理解進程為什么會進入這種狀態,針對性地解決問題的根本原因,而非直接嘗試終止進程。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/10754.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/10754.shtml
英文地址,請注明出處:http://en.pswp.cn/web/10754.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

OC中Block為什么不能為nil

在 Objective-C 中,向 nil 對象發送消息是完全有效的,這是因為 Objective-C 運行時對 nil 消息發送進行了特別的處理。當你向 nil 對象發送消息時,消息會被靜默地忽略,不執行任何操作,也不會返回任何值(或者…

Unity Editor 找物體助手

找啊找朋友~ 🍱功能介紹🥙使用方法 🍱功能介紹 💡輸入相關字符串,它會幫你找到名稱中帶有該字符串的所有物體,還會找包含該字符串的Text、TextMeshProUGUI。 🥙使用方法 💡導入插…

小學拼音弄一下

import re from xpinyin import Pinyindef remove_middle_characters(text):# 僅保留漢字chinese_chars re.findall(r[\u4e00-\u9fff], text)cleaned_text .join(chinese_chars)# 如果字符數為偶數,則在中間添加空格if len(cleaned_text) % 2 0:middle_index le…

【北京迅為】《iTOP-3588從零搭建ubuntu環境手冊》-第5章 安裝SSH

RK3588是一款低功耗、高性能的處理器,適用于基于arm的PC和Edge計算設備、個人移動互聯網設備等數字多媒體應用,RK3588支持8K視頻編解碼,內置GPU可以完全兼容OpenGLES 1.1、2.0和3.2。RK3588引入了新一代完全基于硬件的最大4800萬像素ISP&…

從0開始學python(七)

目錄 前言 1 break、continue和pass函數 1.1 break 1.2 continue 1.3 pass 2、序列的索引及切片操作 2.1字符串的索引和切片 2.1.1 字符串索引 2.1.2 字符串切片 總結 前言 上一篇文章我們介紹了python中的循環結構,包括for和while的使用。本章接著往下講。…

騰訊云服務器之ssh遠程連接登錄及轉發映射端口實現內網穿透(實現服務器訪問本地電腦端口)

目錄 一、創建密鑰綁定實例二、設置私鑰權限三、ssh遠程連接到服務器四、修改root密碼五、端口轉發(實現服務器訪問本地電腦的端口) 一、創建密鑰綁定實例 創建密鑰會自動下載一個私鑰,把這個私鑰復制到c盤 二、設置私鑰權限 1、刪除所有用戶…

免費剪輯的素材資源網站,超高清、可商用、不限速、無版權,迅速有效的解決您的視頻剪輯難題!

在數字媒體時代,高質量的剪輯素材已成為視頻制作的核心資源。下面為您推薦的優質視頻剪輯素材網站,都提供超高清、無限速、無版權、可商用的素材,這些網站將大大提升您的視頻制作效率和質量 01. 蛙學府 實用性:★★★★☆ 豐富性&…

您真的會高效使用 Mac 嗎?

文章目錄 屏幕的保養快捷鍵預覽修改文件名查看文件屬性搜索編輯復制,粘貼,剪切,撤銷刪除 跳轉窗口屏幕截圖聲音Dock強制退出查字典神奇的Option鍵鼠標與觸控板切換桌面與應用程序打開通知中心打開Mission Control 安裝與卸載Mac應用程序壓縮和…

記一些CISP-PTE題目解析

0x01 命令執行 直接payload: 127.0.0.1 & whoami,發現可以成功執行whoami命令 然后ls …/ ,發現有個key.php文件 嘗試用cat命令查看 發現不行被攔截了。(其實題目過濾了常用的查看文件的命令 ) 這里有兩種思路,第…

關于一致性,你該知道的事兒(下)

關于一致性,你該知道的事兒(下) 前言一、并發修改單個對象1.1 原子寫操作1.2 顯示加鎖1.3 原子的TestAndSet1.4 版本號機制 二、 多個相關對象的一致性2.1 最大努力實現2.2 2PC && TCCC2.3.基于可靠消息的一致性方案2.4.Saga事務 三、…

HNCTF-PWN

1.ez_pwn 直接看危險函數,不能溢出,只能覆蓋ebp。 后面緊接的又是leave,ret 很明顯是棧遷移,通過printf打印出ebp,通過偏移計算出棧地址。 通過gdb調試,偏移是0x38 以下是payload: from pwn import * #i…

python常用內置對象

1.字符串與字節串 對str 類型調用其encode()方法進行編碼得到byte字符串, 對byte字節串調用其encode()方法并指定正確的編碼格式得到str字符串 “房地產”,encode("utf-8") #對中文進行編碼-.decode("u…

【自然語言處理】【大模型】DeepSeek-V2論文解析

論文地址:https://arxiv.org/pdf/2405.04434 相關博客 【自然語言處理】【大模型】DeepSeek-V2論文解析 【自然語言處理】【大模型】BitNet:用1-bit Transformer訓練LLM 【自然語言處理】BitNet b1.58:1bit LLM時代 【自然語言處理】【長文本…

11.偏向鎖原理及其實戰

文章目錄 偏向鎖原理及其實戰1.偏向鎖原理2.偏向鎖案例代碼演示2.1.偏向鎖案例代碼2.2.1.無鎖情況下狀態2.1.2.偏向鎖狀態2.1.3.釋放鎖后的狀態 2.2.偏向鎖的膨脹和撤銷2.2.1.偏向鎖撤銷的條件2.2.2.偏向鎖的撤銷 2.2.3.偏向鎖的膨脹 2.3.全局安全點原理和偏向鎖撤銷性能問題2.…

面試題-實例

1.什么是線程池? 線程池就是事先將創建好的線程進行整合,當需要使用的時候,直接拿出來進行使用,不用現去創建,可以節約開辟的時間,提高效率。 2.線程池有哪些種類? 在java.util.concurrent.Ex…

EPAI手繪建模APP工程圖頂部工具欄

7、工程圖 圖 302 工程圖 工程圖包括頂部常用工具欄、右側工程圖工具欄、左側模型列表欄、中間的工程圖。 (1) 常用工具欄 ① 刪除,選中場景中工程圖元素后,刪除。可以選擇多個工程圖元素同時刪除。 ② 設置,打開工程圖設置頁面&#xff0…

Java基礎(29)表達式語言(EL)的隱式對象及其作用

表達式語言(Expression Language,簡稱EL)是JSP 2.0及以上版本中引入的一種簡化頁面代碼編寫的語言,它提供了一種在JSP頁面中更容易使用JavaBean屬性及集合的方式。EL主要用于簡化對Java代碼的調用,特別是從后端到前端的…

2024 年最新本地、云服務器安裝部署 miniconda 環境詳細教程(更新中)

Anaconda 概述 Anaconda 是專門為了方便使用 Python 進行數據科學研究而建立的一組軟件包,涵蓋了數據科學領域常見的 Python 庫,并且自帶了專門用來解決軟件環境依賴問題的 conda 包管理系統。主要是提供了包管理與環境管理的功能,可以很方便…

picoCTF-Web Exploitation-More SQLi

Description Can you find the flag on this website. Additional details will be available after launching your challenge instance. Hints SQLiLite 先隨便輸入個賬號密碼登錄一下,得到查詢SQL,接下來應該對SQL進行某些攻擊來繞過密碼登錄成功 -- …

微信小程序踩坑,skyline模式下,簡易雙向綁定無效

工具版本 基礎庫版本 Skline模式 頁面json設置 問題描述 skyline模式下,textarea,input標簽設置簡易雙向綁定 model:value是無效的,關閉skyline模式就正常使用了 截圖展示 這里只展示了textarea標簽,input標簽的簡易雙向綁定也是無效的 總結 我在文檔里面是沒找到skyline里面不…