linux ps 檢視程序狀態

2022-07-31 10:48:14 字數 3324 閱讀 1433

ps[引數]

linux中的ps命令是process status的縮寫。ps命令用來列出系統中當前執行的那些程序。ps命令列出的是當前那些程序的快照,就是執行ps命令的那個時刻的那些程序,如果想要動態的顯示程序資訊,就可以使用top命令。

要對程序進行監測和控制,首先必須要了解當前程序的情況,也就是需要檢視當前程序,而ps命令就是最基本同時也是非常強大的程序檢視命令。使用該命令可以確定有哪些程序正在執行和執行的狀態、程序是否結束、程序有沒有僵死、哪些程序占用了過多的資源等等。

kill 命令用於殺死程序。

1. 執行(正在執行或在執行佇列中等待) 

2. 中斷(休眠中, 受阻, 在等待某個條件的形成或接受到訊號)

3. 不可中斷(收到訊號不喚醒和不可執行, 程序必須等待直到有中斷發生)

4. 僵死(程序已終止, 但程序描述符存在, 直到父程序呼叫wait4()系統呼叫後釋放)

5. 停止(程序收到sigstop, sigstp, sigtin, sigtou訊號後停止執行執行)```

d 不可中斷 uninterruptible sleep (usually io) 

r 執行 runnable (on run queue)

s 中斷 sleeping

t 停止 traced or stopped

z 僵死 a defunct (」zombie」) process

a  顯示所有程序

-a 顯示同一終端下的所有程式

-a 顯示所有程序

c 顯示程序的真實名稱

-n 反向選擇

-e 等於「-a」

e 顯示環境變數

f 顯示程式間的關係

-h 顯示樹狀結構

r 顯示當前終端的程序

t 顯示當前終端的所有程式

u 指定使用者的所有程序

-au 顯示較詳細的資訊

-aux 顯示所有包含其他使用者的行程

-c《命令》 列出指定命令的狀況

--lines《行數》 每頁顯示的行數

--width《字元數》 每頁顯示的字元數

--help 顯示幫助資訊

--version 顯示版本顯示

ps -a
ps -u root
ps -ef
ps -ef|grep ssh
$ ps -l

f s uid pid ppid c pri ni addr sz wchan tty time cmd

4 s 0 17398 17394 0 75 0 - 16543 wait pts/0 00:00:00 bash

4 r 0 17469 17398 0 77 0 - 15877 - pts/0 00:00:00 ps

f 代表這個程式的旗標 (flag), 4 代表使用者為 super user

s 代表這個程式的狀態 (stat)

uid 程式被該 uid 所擁有

pid 就是這個程式的 id

ppid 則是其上級父程式的id

c cpu 使用的資源百分比

pri 是 priority (優先執行序) 的縮寫

ni 是 nice 值

addr 是 kernel function,指出該程式在記憶體的那個部分。如果是個 running的程式,一般就是 "-"

sz 使用掉的記憶體大小

wchan 目前這個程式是否正在運作當中,若為 - 表示正在運作

tty 登入者的終端機位置

time 使用掉的 cpu 時間。

cmd 所下達的指令為何

在預設的情況下, ps 僅會列出與目前所在的 bash shell 有關的 pid,所以,當使用ps -l的時候,只有三個 pid。

常配合grep使用

$ ps aux

user pid %cpu %mem vsz rss tty stat start time command

root 1 0.0 0.0 10368 676 ? ss nov02 0:00 init [3]

root 2 0.0 0.0 0 0 ? s< nov02 0:01 [migration/0]

root 3 0.0 0.0 0 0 ? sn nov02 0:00 [ksoftirqd/0]

user:該 process 屬於那個使用者賬號的

pid :該 process 的號碼

%cpu:該 process 使用掉的 cpu 資源百分比

%mem:該 process 所占用的物理記憶體百分比

vsz :該 process 使用掉的虛擬記憶體量 (kbytes)

rss :該 process 占用的固定的記憶體量 (kbytes)

tty :該 process 是在那個終端機上面運作,若與終端機無關,則顯示 ?,另外, tty1-tty6 是本機上面的登入者程式,若為 pts/0 等等的,則表示為由網路連線進主機的程式。

stat:該程式目前的狀態,主要的狀態有

r :該程式目前正在運作,或者是可被運作

s :該程式目前正在睡眠當中 (可說是 idle 狀態),但可被某些訊號 (signal) 喚醒。

t :該程式目前正在偵測或者是停止了

z :該程式應該已經終止,但是其父程式卻無法正常的終止他,造成 zombie (疆屍) 程式的狀態

start:該 process 被觸發啟動的時間

time :該 process 實際使用 cpu 運作的時間

command:該程式的實際指令

ps -axjf
ps aux | grep -e '(cron|syslog)'
ps -aux |more
ps -aux > ps001.txt
ps -o pid,ppid,pgrp,session,tpgid,comm

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 程序狀態碼

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