2021-05-12 14:32:11
Linux進程操作資訊
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
相關文章