首頁 > 軟體

Linux進程操作資訊

2020-06-16 17:46:48

Linux進程操作簡單小結

Linux上進程有5種狀態:

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

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

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

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

5.停止(進程收到SIGSTOP, SIGSTP, SIGTIN, SIGTOU信號後停止執行執行)


 

ps命令用來靜態檢視目前系統中,有哪些正在執行,以及它們的執行情況。可以不加任何引數。

ps  -a  :顯示當前終端的所有進程資訊。

ps  -u  :以使用者的格式顯示進程資訊

ps  -x  :顯示後台進程執行的引數

本人喜歡直接三個引數連起來使用:ps  -aux  這樣查到的資訊更全更詳細。

例:

引數說明:

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:該程式的實際指令



 

top動態檢視進程使用狀況

23:59:58    當前時間
up 10:22 系統執行時間,格式為時:分
2 user 當前登入使用者數
load average: 0.00, 0.00, 0.00 系統負載,即任務佇列的平均長度。三個數值分別為 1分鐘、5分鐘、15分鐘前到現在的平均值。

total 進程總數
running 正在執行的進程數
sleeping 睡眠的進程數
stopped 停止的進程數
zombie 殭屍進程數
Cpu(s):
xx% us 使用者空間佔用CPU百分比
xx% sy 核心空間佔用CPU百分比
xx% ni 使用者進程空間內改變過優先順序的進程佔用CPU百分比
xx% id 空閒CPU百分比
xx% wa 等待輸入輸出的CPU時間百分比
xx%hi:硬體CPU中斷佔用百分比
xx%si:軟中斷佔用百分比
xx%st:虛擬機器占用百分比

 

Mem:
1004412k total 實體記憶體總量
221404k used 使用的實體記憶體總量
783008k free 空閒記憶體總量
17268k buffers 用作核心快取的記憶體量
Swap:
2031668k total 交換區總量
0k used 使用的交換區總量
2031608k free 空閒交換區總量
97902k cached 緩衝的交換區總量,記憶體中的內容被換出到交換區,而後又被換入到記憶體,但使用過的交換區尚未被覆蓋,該數值即為這些內容已存在於記憶體中的交換區的大小,相應的記憶體再次被換出時可不必再對交換區寫入。

 

序號 列名 含義
a PID 進程id
b PPID 父進程id
c RUSER Real user name
d UID 進程所有者的使用者id
e USER 進程所有者的使用者名稱
f GROUP 進程所有者的組名
g TTY 啟動進程的終端名。不是從終端啟動的進程則顯示為 ?
h PR 優先順序
i NI nice值。負值表示高優先順序,正值表示低優先順序
j P 最後使用的CPU,僅在多CPU環境下有意義
k %CPU 上次更新到現在的CPU時間佔用百分比
l TIME 進程使用的CPU時間總計,單位秒
m TIME+ 進程使用的CPU時間總計,單位1/100秒
n %MEM 進程使用的實體記憶體百分比
o VIRT 進程使用的虛擬記憶體總量,單位kb。VIRT=SWAP+RES
p SWAP 進程使用的虛擬記憶體中,被換出的大小,單位kb。
q RES 進程使用的、未被換出的實體記憶體大小,單位kb。RES=CODE+DATA
r CODE 可執行程式碼佔用的實體記憶體大小,單位kb
s DATA 可執行程式碼以外的部分(資料段+棧)占用的實體記憶體大小,單位kb
t SHR 共用記憶體大小,單位kb
u nFLT 頁面錯誤次數
v nDRT 最後一次寫入到現在,被修改過的頁面數。
w S 進程狀態(D=不可中斷的睡眠狀態,R=執行,S=睡眠,T=跟蹤/停止,Z=殭屍進程)
x COMMAND 命令名/命令列
y WCHAN 若該進程在睡眠,則顯示睡眠中的系統函數名
z Flags 任務標誌,參考 sched.h


終止進程的介紹

kill    進程號      :終止某個進程

kill  -9  進程號   :強制終止某個進程

kill  -u  使用者名稱   :終止某個使用者的進程

這裡就簡單介紹常用的三種終止進程命令。


 

Linux檢視某一進程執行路徑步驟只需三步:

一:先檢視需要查詢的進程的進程號,ps 或者 top 也行

二:Linux在啟動一個進程時,系統會在/proc下建立一個以PID命名的資料夾,在該資料夾下會有我們的進程的資訊。

cd /proc/PID   :到達相應的進程目錄下面。

三:執行ls -l

留意:

cwd符號連結的是進程執行目錄。

exe符號連線就是執行程式的絕對路徑。

cmdline就是程式執行時輸入的命令列命令。

environ記錄了進程執行時的環境變數。

本文永久更新連結地址http://www.linuxidc.com/Linux/2016-01/127678.htm


IT145.com E-mail:sddin#qq.com