詳解Linux進(jìn)程及作業(yè)管理
一、進(jìn)程查看及其管理工具
ps命令:報(bào)告當(dāng)前進(jìn)程的快照信息
- ps - report a snapshot of the current processes.
選項(xiàng):
-A:顯示所有進(jìn)程與-e相同的效果
-a:不與終端相關(guān)的所有進(jìn)程
-u:與用戶相關(guān)的進(jìn)程
-x:通常和a,u結(jié)合使用,顯示出來比較全面的信息
-f:做一個(gè)更為完整的輸出
常用的組合:
ps -ef 以完整的信息顯示所有進(jìn)程信息
ps -efH 顯示進(jìn)程層次結(jié)構(gòu)
ps -aux 顯示所有不與終端和與終端相關(guān)的進(jìn)程完整信息
ps -axo pid,command,psr,pri,ni 自定義顯示其進(jìn)程號(hào)、進(jìn)程命令、優(yōu)先級(jí)、nice值
命令演示:
UID/PID/PPID:表示發(fā)起者、進(jìn)程號(hào)、父進(jìn)程號(hào)
C:代表CPU,單位為百分比
STIME:表示進(jìn)程啟動(dòng)時(shí)間
TTY:登錄者的終端位置
TIME:cpu的運(yùn)行時(shí)間
CMD:處罰進(jìn)程命令
命令演示:
USER:進(jìn)程的發(fā)起者 PID:進(jìn)程號(hào) %CPU:cpu的占用率
%MEM:內(nèi)存的占用率 VSZ:虛擬內(nèi)存集 RSS:物理內(nèi)存集
TTY:終端位置 STAT:進(jìn)程狀態(tài)信息 START:被觸發(fā)的時(shí)間
TIME:cpu的使用時(shí)間 COMMAND:觸發(fā)進(jìn)程命令
………………………………………………………………………………………………………………………
注:STAT的常見狀態(tài):
R:running,運(yùn)行狀態(tài)
S:interruptible sleeping,可終端休眠
D:uninterruptible sleeping,不可終端休眠
T:stop,停止?fàn)顟B(tài)
Z:zombie,僵持狀態(tài)
top命令:
top - display Linux tasks:動(dòng)態(tài)顯示linux進(jìn)程信息
- top - 17:24:30 up 2 days, 9:45, 3 users, load average: 0.00, 0.01, 0.05
top 當(dāng)前系統(tǒng)時(shí)間 系統(tǒng)啟動(dòng)到現(xiàn)在時(shí)間總長(zhǎng) 用戶數(shù) 平均負(fù)載
- Tasks: 364 total, 2 running, 361 sleeping, 1 stopped, 0 zombie
顯示進(jìn)程總量與個(gè)別程序處在什么樣的狀態(tài):運(yùn)行 可中斷 不可中斷 僵持狀態(tài)、僵死狀態(tài)
- %Cpu(s): 0.3 us, 0.7 sy, 0.0 ni, 99.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
………………………………………………………………………………………………………………………
顯示CPU的整體負(fù)載,具體如下:
us:user space 用于使用空間
sy:system space 內(nèi)核占用cpu百分比
ni:nice用戶進(jìn)程空間所改變過優(yōu)先級(jí)的進(jìn)程占用cpu的百分比
id:idle空閑cpu百分比
wa:wait i/0 等待i/o花費(fèi)時(shí)間
hi:hardware interrupt
si:software interrupt
st:stolen,被虛擬內(nèi)存偷走的百分比
KiB Mem : 1001332 total, 139212 free, 207732 used, 654388 buff/cache
物理內(nèi)存占用使用情況
KiB Swap: 2098172 total, 2097620 free, 552 used. 531424 avail Mem
交換分區(qū)的使用情況
上面一行通常為空,只要在輸入命令時(shí)才顯示,在這可輸入的命令有如下:
P:以占據(jù)的cpu的百分比大小進(jìn)程排序
M:以占據(jù)的memory大小進(jìn)行排序
T:以cpu的運(yùn)行時(shí)長(zhǎng)進(jìn)行排序
l:顯示系統(tǒng)負(fù)載行
t:是否顯示系統(tǒng)進(jìn)程摘要信息及其cpu的負(fù)載狀態(tài)
1:平均或單獨(dú)顯示cpu的負(fù)載狀態(tài)
m:是否顯示內(nèi)存相關(guān)的狀態(tài)信息
q:退出命令
s:修改延長(zhǎng)刷新時(shí)間
k:終止指定進(jìn)程
………………………………………………………………………………………………………………………
top字段詳解:
PID:進(jìn)程號(hào)
USER:進(jìn)程發(fā)起者
PR:進(jìn)程的優(yōu)先級(jí),越小越優(yōu)先
NI:nice值,與priortity有關(guān),越小越早被運(yùn)行
VIRT:虛擬內(nèi)存集 進(jìn)程占虛擬內(nèi)存空間
RES:物理內(nèi)存集 進(jìn)程占實(shí)際內(nèi)存空間
SHR:進(jìn)程與其他進(jìn)程共享的內(nèi)存大小
S:進(jìn)程的狀態(tài)信息
%CPU:cpu的使用百分比
%MEM:內(nèi)存的使用百分比
TIME+:cpu的使用時(shí)間的總時(shí)長(zhǎng)
COMMAND:進(jìn)程相關(guān)命令
htop命令:內(nèi)部進(jìn)程查看器
- htop - interactive process viewer
u:顯示指定用戶的進(jìn)程
l:顯示光標(biāo)所在進(jìn)程所打開的文件列表
s:顯示光標(biāo)所在進(jìn)程執(zhí)行的系統(tǒng)調(diào)用
a:綁定進(jìn)程到指定的cpu
#:快速定位光標(biāo)之pid為#號(hào)的進(jìn)程上
htop支持的選項(xiàng):
-d:延長(zhǎng)時(shí)長(zhǎng)
-u USERNAME:僅顯示指定用戶的進(jìn)程
-s COLUMN:根據(jù)指定的字段進(jìn)行排序
二、Linux進(jìn)程及作業(yè)管理
1、進(jìn)程管理
所謂的進(jìn)程管理就是向進(jìn)程發(fā)送一些控制信號(hào),來完成對(duì)進(jìn)程的管理控制,可通過kill命令來顯示當(dāng)前系統(tǒng)可用的信號(hào),以及向進(jìn)程發(fā)送信號(hào)指定。
kill -l:顯示當(dāng)前系統(tǒng)可用的信號(hào)

kill命令:
用于向進(jìn)程發(fā)送信號(hào),以實(shí)現(xiàn)對(duì)進(jìn)程的管理
- kill - terminate a process
每個(gè)信號(hào)的標(biāo)識(shí)方式有三種:
1)信號(hào)的數(shù)字標(biāo)識(shí)
2)信號(hào)的完整名稱
3)信號(hào)的簡(jiǎn)寫名稱
向進(jìn)程發(fā)信號(hào):
kill [-s signal|-p] [--] pid...
kill -l [signal]
常見的信號(hào)有:
1)SIGHUB #無需關(guān)閉進(jìn)程讓其重讀配置文件 kill -1 pid
2)SIGINT #終止正在運(yùn)行的指令 相當(dāng)于ctrl+c kill -2 pid
9)SIGKILL #強(qiáng)暴的殺死正在運(yùn)行的進(jìn)程 kill -9 pid
15)SIGNTERM#安全終止運(yùn)行中的進(jìn)程 kill -15 pid
19)SIGSTOP #停止進(jìn)程
killall命令:killall命令后面接進(jìn)程名
- killall - kill processes by name
2、作業(yè)管理
在每個(gè)用戶登錄系統(tǒng)之后每個(gè)工作進(jìn)程都是當(dāng)前bash的子進(jìn)程,此時(shí)我們需要對(duì)那些進(jìn)行管理,即將一部分作業(yè)放入后臺(tái)運(yùn)行,,同時(shí)在前臺(tái)編輯一個(gè)配置文件,在編輯完配置文件后再將后臺(tái)的作業(yè)任務(wù)調(diào)回前臺(tái)運(yùn)行。
如何將作業(yè)運(yùn)行在后臺(tái):
1)ctrl+z
2)command &
作業(yè)控制命令:fg bg kill
作業(yè)控制命令:
# fg [[%]JOBNUM]: 將指定的作業(yè)調(diào)回前臺(tái)
# bg [[%]JOBNUM]: 讓送往后臺(tái)的作業(yè)在后臺(tái)繼續(xù)運(yùn)行
# kill[%JOBNUM]: 終止指定的作