進程主要分爲 :
用戶進程 ->termial
守護進程-> daemon 與終端無關的
調度進程 例如at ,crond命令的執行
進程一般是INIT發起的子進程,它的pid是1,可以使用pstree命令查看
/proc 下可以查看進程信息
每個進程都有個PID,一般是1-32767
用PS命令可以查看進程:
USER 表示發起用戶
RUSER表示實際上市由誰發起的
EUSER 表示使用的是誰的權限
PID 表示進程PID號
%CPU 顯示CPU的使用率
%MEN 顯示內存使用率
NI nice值,優先級
VSZ 虛擬內存大小佔用
RSS 物理內存大小佔用
TTY那個tty發起的其中 ?是守護進程
STAT 進程狀態
TIME 累積獲得的CPU時間
COMMAND 哪個命令啓動的子進程
其中STAT表示的進程狀態
D表示不可中斷
R正在運行或等待馬上即可運行的
S可中斷的sleep
T中斷狀態停止狀態
Z僵死進程 例如一個進程的父進程被突然KILL了,他的子進程就變成僵死進程了 BUG程序會導致
每個標誌號都可以帶上修飾符
< 表示高優先級
N表示低優先級
L鎖定在內存中的
+前臺運行的
l 表示多線程的
命令PS常用來查看進程
BSD風格,一般不需要加上-
a 和終端有關的
x 和終端無關的
u 顯示用戶相關信息
o選項可以用戶自定義顯示,例如 只讓顯示與終端無關的pid , ps xo pid
還有另一種風格,需要加上-
-e 全部進程
-f 所有信息
有個簡練的命令,可以做選擇的輸出
Pgrep 支持正則表達式
Pgrep –U root –v(反向,非該用戶的)
-G xxx
-l 1 包含1的
如果知道進程名可以使用 pidof 進程名
信號!!!singal
Kill –l 和man 7 singal 可以查看信號
其中2中止相當於ctrl+C
5是優雅的中止
9 kill,強行殺掉
15相當於CTRL+Z
Kill可以用來殺掉進程,發出一個信號
Kill -9 XXX表示強行殺掉一個進程
相當於kill –kill xxx
Killall 進程名 可以殺掉所有相關的進程
-i 交互式
-v 支持正則表達式
Nice 可以調節一個進程的優先級
-20~19 值越小,優先級越高
Nice –n xxx(命令)
如果進程已經存在
Renice n –p pid可以修改相對於PID的進程
使用top命令可以動態查看進程
其中US 用戶
Sy 內核
ni nice值
id 空閒
wa 等待
hi 硬件中斷時間
si 軟件中斷時間
st 被偷走的(比如完全虛擬化的虛擬機佔用)
mem
swap
top –b 批處理,換屏
top –n 2 刷新2次
-d 1 1秒刷新一次