1. 程式人生 > >進程管理學習筆記

進程管理學習筆記

linux


  1. 一、狀態

1.正在運行或在運行隊列中等待[就緒隊列]) ,用狀態碼R表示

2. 中斷狀態(休眠中, 受阻, 在等待某個條件的形成或接受到信號) ,用狀態碼S表示

3. 不可中斷狀態(收到信號不喚醒和不可運行, 進程必須等待直到有中斷發生) ,用狀態碼D表示

4. 僵死狀態(進程已終止, 但進程描述符存在, 直到父進程調用wait4()系統調用後釋放) ,用狀態碼Z表示

5. 停止狀態(進程收到SIGSTOP, SIGSTP, SIGTIN, SIGTOU信號後停止運行運行) ,用狀態碼T表示

PS工具標識進程的5種狀態碼:

D 不可中斷 uninterruptible sleep (usually IO)

R 運行 runnable (on run queue)

S 中斷 sleeping

T 停止 traced or stopped

Z 僵死 a defunct (”zombie”) process


<:高優先級進程

N:低優先級進程

+:前臺進程組中的進程

l:多線程進程

s:會話進程

二、進程間通信(IPC:Inter Process Communication)

共享內存

信號:Signal

kill -l 顯示所有可用的信號

1:SIGHUP: 讓一個進程不用重啟,就可以重讀其配置文件,並讓新的配置信息生效

2: SIGINT:Ctrl+c: 中斷一個前臺進程

9: SIGKILL:殺死一個進程(直接強行關閉進程)

15: SIGTERM:終止一個進程, 默認信號(釋放所有的資源)

Semaphore:通過打旗語與其他進程通信

...

指定殺死一個信號(默認15信號):

以top為例

信號號碼:kill 13310
信號名稱:kill -SIGKILL
信號名稱簡寫:kill -KILL
kill PID
killall COMMAND(需要殺掉多個進程時):killall httpd


二、指令

ps:

-e 顯示所有進程。

-f 全格式。

-h 不顯示標題。

-l 長格式。

-w 寬輸出。

-F 顯示更多的字段

-o 顯示指定字段(ps -o pid,comm,ni)

a 顯示終端上的所有進程,包括其他用戶的進程。

r 只顯示正在運行的進程。

x 顯示沒有控制終端的進程。

常用指令實例:

-elf

-ef

-eF

數據標簽:

USER //用戶名

UID //用戶ID、但輸出的是用戶名

PID //進程的ID

PPID //父進程ID

C //進程占用CPU的百分比

STIME //進程啟動到現在的時間

TTY //該進程在那個終端上運行,若與終端無關,則顯示? 若為pts/0等,則表示由網絡連接主機進程

CMD //命令的名稱和參數

%CPU //進程占用的CPU百分比

%MEM //占用內存的百分比

VSZ //該進程使用的虛擬內存量(KB)

RSS //該進程占用的固定內存量(KB)(駐留中頁的數量)

STAT //進程的狀態

START //該進程被觸發啟動時間

TIME //該進程實際使用CPU運行的時間

PRI //優先級

NI //nice值

PSR //進程運行所處的CPU

pstree:顯示當前系統上的進程樹

pgrep:獲取進程ID

[[email protected] 2]# pgrep -u root bash
9339

pidof:根據進程名稱查找其相關進程的ID號

[[email protected] 2]# pidof bash
9339 767

top:

M: 根據駐留內存大小進行排序

P:根據CPU使用百分比進行排序

T: 根據累計時間進行排序


l: 是否顯示平均負載和啟動時間

t: 是否顯示進程和CPU狀態相關信息

m: 是否顯示內存相關信息

c: 是否顯示完整的命令行信息

q: 退出top

k: 終止某個進程


-d: 指定延遲時長,單位是秒

-b: 以批處理模式,以翻屏模式進行

-n #:在批模式下,共顯示多少屏

free:查看當前系統內存的使用情況,它顯示系統中剩余及已用的物理內存和交換內存,以及共享內存和被核心使用的緩沖區。

vmstat:系統狀態查看命令

[[email protected] 2]# vmstat
procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
 r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st
 3  0      0 3055292    976 528100    0    0     7     1   28   49  0  0 100  0  0


四、調整nice值

調整已經啟動的進程的nice值:renice NI PID

在啟動時指定nice值:nice -n NI COMMAND

五、前臺和後臺

前臺作業:占據了命令提示符
後臺作業:啟動之後,釋放命令提示符,後續的操作在後臺完成

前臺-->後臺:
Ctrl+z: 把正在前臺的作業送往後臺,加送一個停止信號,作業在後臺停止運行
COMMAND &:讓命令在後臺執行

bg: 讓後臺的停止作業繼續運行
bg [[%]JOBID]

jobs: 查看後臺的所有作業
作業號,不同於進程號
+:命令將默認操作的作業
-:命令將第二個默認操作的作業

fg: 將後臺的作業調回前臺
fg [[%]JOBID]


kill %JOBID:終止某作業

進程管理學習筆記