processes 進程

 進程主要分爲
用戶進程 ->termial
守護進程-> daemon 與終端無關的
調度進程  例如at crond命令的執行

 

進程一般是INIT發起的子進程,它的pid1,可以使用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秒刷新一次

 

 

以上就是進程的基本知識

作業 jobs

使用ctrl+z可以把前臺運行的程序放入後天

Jobs 可以查看當前後天運行的作業

Fg %n 即可調出後臺的作業

Bg %n 則可以讓後臺的作業在後臺運行

Kill    %n 可以kill掉一個作業

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章