Linux ps命令及程序狀態簡介

2021-10-03 07:19:11 字數 961 閱讀 6473

檢視程序狀態

在linux常用以下兩個命令檢視程序狀態:

ps -ef

ps aux

這兩個命令都可以列出所有程序及其狀態,具體各命令的含義可以參考man手冊。

下文以使用ps aux為例,會列出user pid %cpu %mem vsz rss tty stat start time command各列。

本文主要**列出的資訊中的stat列,它表示的是當前程序的狀態。

程序狀態

程序的狀態可能是r(task_running)、s(task_interruptible)、d(task_uninterruptible)、t(task_stopped/task_traced)、z(task_dead/exit_zombie)、x(task_dead/exit_dead),具體如下:

s: 可中斷的睡眠狀態。

d: 不可中斷的睡眠狀態。

t: 暫停狀態或跟蹤狀態。

z: 退出狀態,程序成為殭屍程序。

x: 退出狀態,程序即將被銷毀。

程序狀態的變遷

程序是通過fork系列的系統呼叫(fork、clone、vfork)來建立的,核心(或核心模組)也可以通過kernel_thread函式建立核心程序。

這些建立子程序的函式本質上都完成了相同的功能——將呼叫程序複製乙份,得到子程序。(可以通過選項引數來決定各種資源是共享、還是私有。)

儘管程序狀態有好幾種,但是程序狀態的變遷卻只有兩個方向:

具體來說:

小結檢視程序狀態是除錯linux程式的必備技能,一般情況下,程序狀態會是前三種情況。

在程式除錯中,處於z狀態的程式也不少見,通過檢視程序狀態,方便定位問題。

參考資料

linux程序狀態解析 之 r、s、d、t、z、x (主要有三個狀態)

Linux ps命令檢視程序狀態

ps 命令是最常用的監控程序的命令,通過此命令可以檢視系統中所有執行程序的詳細資訊。ps 命令的基本格式如下 root localhost ps aux 檢視系統中所有的程序,使用 bs 作業系統格式 root localhost ps le 檢視系統中所有的程序,使用 linux 標準命令格式選項...

Linux ps程序狀態碼

d 不可中斷睡眠 通常程序在進行i o r 執行中或者可執行狀態 在執行佇列中 s 可中斷睡眠 等待event,程序idle中 t 程序停止 程序被trace或者程序被訊號停止 x 程序死亡 應該永不可見 z 殭屍程序 結束,但是父程序沒有wait該子程序 對於bsd格式,狀態碼可以附加額外的字元 ...

linux ps 檢視程序狀態

ps 引數 linux中的ps命令是process status的縮寫。ps命令用來列出系統中當前執行的那些程序。ps命令列出的是當前那些程序的快照,就是執行ps命令的那個時刻的那些程序,如果想要動態的顯示程序資訊,就可以使用top命令。要對程序進行監測和控制,首先必須要了解當前程序的情況,也就是需...