靜態(tài)查看進(jìn)程
1、ps:是監(jiān)視系統(tǒng)進(jìn)程的主要工具,顯示的是瞬時(shí)的進(jìn)程狀況
ps -elf 可以顯示 uid ppid
ps aux BSD
-e:顯示所有進(jìn)程
-f:全格式顯示
a:顯示所有進(jìn)程(包含其他用戶的進(jìn)程)
u:顯示進(jìn)程的擁有者
x:和a一起使用逞刷,顯示所有進(jìn)程(包含無控制終端的進(jìn)程) TTY為?的進(jìn)程
-l:顯示更多的信息 (PRI 優(yōu)先級(jí))
-o:自定義顯示結(jié)果(默認(rèn)情況只顯示前臺(tái)進(jìn)程)
eg: ps -axo uid,pid,ppid
/proc
進(jìn)程的擁有者 進(jìn)程號(hào) 父進(jìn)程號(hào) cpu使用的資源百分比 開始時(shí)間 運(yùn)行進(jìn)程的終端名字 進(jìn)程運(yùn)行的時(shí)間 命令
pts:偽終端纠俭、虛擬終端
tty1--tty6: 字符終端
擁有者 進(jìn)程號(hào) 占用cpu百分比 占用內(nèi)存百分比 占用的虛擬內(nèi)存的大小VSZ 駐留內(nèi)存大小RSS 終端 進(jìn)程狀態(tài)STAT 開始時(shí)間 START 運(yùn)行時(shí)間(占用cpu的時(shí)間) 命令
STAT:進(jìn)程狀態(tài)
R:該進(jìn)程正在運(yùn)行或就緒
S:休眠進(jìn)程
Z:僵尸進(jìn)程,實(shí)際上該進(jìn)程已經(jīng)終止穷劈,但是它的父進(jìn)程卻無法正常終止它笼恰,造成僵尸進(jìn)程的狀態(tài)
T:該進(jìn)程正在跟蹤或者已經(jīng)停止
2、pstree:以樹形顯示正在運(yùn)行的進(jìn)程
systemd是所有進(jìn)程的父進(jìn)程
el6為init
top:實(shí)時(shí)查看系統(tǒng)運(yùn)行狀態(tài)
統(tǒng)計(jì)信息區(qū)(共五行):
第一行: 當(dāng)前系統(tǒng)時(shí)間 系統(tǒng)運(yùn)行時(shí)間 , 當(dāng)前登錄用戶數(shù), 系統(tǒng)平均負(fù)載: 1分鐘,5分鐘,15分鐘
第二行: 任務(wù)(進(jìn)程): 總數(shù), 正在運(yùn)行的, 休眠的, 停止的, 僵尸
第三行: cpu狀態(tài)(%): 用戶空間us, 內(nèi)核空間sy, 改變過優(yōu)先級(jí)的ni, 空閑的id, IO等待的wa, 硬中斷hi, 軟中斷si, 虛擬機(jī)st
第四行: 內(nèi)存狀態(tài)(K): 總量, 空閑的, 使用中的, 緩存的
第五行: swap狀態(tài)(K): 總量, 空閑的, 使用中的, 緩沖的
進(jìn)程信息區(qū):
PID — 進(jìn)程id
USER — 進(jìn)程所有者
PR — 進(jìn)程優(yōu)先級(jí)
NI — nice值歇终。負(fù)值表示高優(yōu)先級(jí)社证,正值表示低優(yōu)先級(jí)
VIRT — 進(jìn)程使用的虛擬內(nèi)存總量,單位kb评凝。VIRT=SWAP+RES
RES — 進(jìn)程使用的追葡、未被換出的物理內(nèi)存大小,單位kb奕短。RES=CODE+DATA
SHR — 共享內(nèi)存大小宜肉,單位kb
S — 進(jìn)程狀態(tài)。D=不可中斷的睡眠狀態(tài) R=運(yùn)行 S=睡眠 T=跟蹤/停止 Z=僵尸進(jìn)程
Ss s進(jìn)程的領(lǐng)導(dǎo)者翎碑,父進(jìn)程
S< <優(yōu)先級(jí)較高的進(jìn)程
SN N優(yōu)先級(jí)較低的進(jìn)程
R+ +表示是前臺(tái)的進(jìn)程組
Sl 以線程的方式運(yùn)行
%CPU — 上次更新到現(xiàn)在的CPU時(shí)間占用百分比
%MEM — 進(jìn)程使用的物理內(nèi)存百分比
TIME+ — 進(jìn)程使用的CPU時(shí)間總計(jì)崖飘,單位1/100秒
COMMAND — 進(jìn)程名稱(命令名/命令行)
序號(hào) 列名 含義
a PID 進(jìn)程id
b PPID 父進(jìn)程id
c RUSER Real user name
d UID 進(jìn)程所有者的用戶id
e USER 進(jìn)程所有者的用戶名
f GROUP 進(jìn)程所有者的組名
g TTY 啟動(dòng)進(jìn)程的終端名。不是從終端啟動(dòng)的進(jìn)程則顯示為 ?
h PR 優(yōu)先級(jí)
i NI nice值杈女。負(fù)值表示高優(yōu)先級(jí)朱浴,正值表示低優(yōu)先級(jí)
j P 最后使用的CPU,僅在多CPU環(huán)境下有意義
k %CPU 上次更新到現(xiàn)在的CPU時(shí)間占用百分比
l TIME 進(jìn)程使用的CPU時(shí)間總計(jì)达椰,單位秒
m TIME+ 進(jìn)程使用的CPU時(shí)間總計(jì)翰蠢,單位1/100秒
n %MEM 進(jìn)程使用的物理內(nèi)存百分比
o VIRT 進(jìn)程使用的虛擬內(nèi)存總量,單位kb啰劲。VIRT=SWAP+RES
p SWAP 進(jìn)程使用的虛擬內(nèi)存中梁沧,被換出的大小,單位kb蝇裤。
q RES 進(jìn)程使用的廷支、未被換出的物理內(nèi)存大小频鉴,單位kb。RES=CODE+DATA
r CODE 可執(zhí)行代碼占用的物理內(nèi)存大小恋拍,單位kb
s DATA 可執(zhí)行代碼以外的部分(數(shù)據(jù)段+棧)占用的物理內(nèi)存大小垛孔,單位kb
t SHR 共享內(nèi)存大小,單位kb
u nFLT 頁面錯(cuò)誤次數(shù)
v nDRT 最后一次寫入到現(xiàn)在施敢,被修改過的頁面數(shù)周荐。
w S 進(jìn)程狀態(tài)(D=不可中斷的睡眠狀態(tài),R=運(yùn)行,S=睡眠,T=跟蹤/停止,Z=僵尸進(jìn)程)
x COMMAND 命令名/命令行
y WCHAN 若該進(jìn)程在睡眠,則顯示睡眠中的系統(tǒng)函數(shù)名
z Flags 任務(wù)標(biāo)志
top操作:
1 -- 展開cpu信息
f -- 更改顯示內(nèi)容
M -- 根據(jù)駐留內(nèi)存大小進(jìn)行排序
P -- 根據(jù)CPU使用百分比大小進(jìn)行排序
q -- 退出
Fields 字段/列
進(jìn)程的前后臺(tái)調(diào)度
1僵娃、前臺(tái)運(yùn)行:
# firefox 192.168.1.250
會(huì)發(fā)現(xiàn)該程序一直占用終端砰琢,其他命令不能夠再在這個(gè)終端運(yùn)行
2徽职、后臺(tái)運(yùn)行
1)命令執(zhí)行的時(shí)候妒御,直接將其放置于后臺(tái)運(yùn)行
# firefox 192.168.1.250 &
[1] 6222
后臺(tái)運(yùn)行不會(huì)占用執(zhí)行命令的終端久锥,用戶仍然可以使用這個(gè)終端做操作
2)對(duì)于一個(gè)已經(jīng)運(yùn)行的命令,如何將其放置于后臺(tái) ctrl+z
# firefox 192.168.1.250
[1] Done firefox 192.168.1.250
[2]+ Stopped firefox 192.168.1.250
ctrl+z將前臺(tái)進(jìn)程放置于后臺(tái)匙睹,但是該進(jìn)程在后臺(tái)是停止的狀態(tài)
# jobs //查看后臺(tái)進(jìn)程運(yùn)行狀態(tài)
[2]+ Stopped firefox 192.168.1.250
# bg 2 //激活后臺(tái)進(jìn)程
[2]+ firefox 192.168.1.250 &
# jobs
[2]+ Running firefox 192.168.1.250 &
bg 任務(wù)編號(hào) : 指定任務(wù)在后臺(tái)運(yùn)行
fg 任務(wù)編號(hào) : 將后臺(tái)運(yùn)行的命令變成前臺(tái)運(yùn)行
# fg 2
firefox 192.168.1.250
注意:不管你是前臺(tái)運(yùn)行瘩扼,還是后臺(tái)運(yùn)行,只要終端一關(guān)閉垃僚,進(jìn)程就停止了。
那么如何讓一個(gè)命令或者程序脫離終端规辱?
使用nohup命令谆棺。
# nohup firefox 192.168.1.250 &
[1] 6537
# nohup: ignoring input and appending output to `nohup.out' //按回車
進(jìn)程的終止
如何終止一個(gè)進(jìn)程呢?
1. 前臺(tái)正在執(zhí)行的命令: ctrl+c
2. kill,killall等命令
kill通過傳遞信號(hào)給進(jìn)程來執(zhí)行相應(yīng)的操作.
查看信號(hào)的列表
# kill -l
常用的信號(hào):
1) SIGHUP:重置進(jìn)程的配置,即不停止服務(wù)的情況下罕袋,重新讀取配置文件 重載
kill -1 PID 或者kill -HUP PID
2) SIGINT:中斷(interrupt)改淑,ctrl+c
9) SIGKILL:強(qiáng)制殺死進(jìn)程
15) SIGTERM:正常終止進(jìn)程,此信號(hào)為kill默認(rèn)
18) SIGCONT: 繼續(xù),和20相反,bg
20) SIGTSTP:暫停,ctrl+z
pkill:按照進(jìn)程的屬性結(jié)束進(jìn)程
按照進(jìn)程名字殺死進(jìn)程
# pkill firefox
按照用戶名殺死進(jìn)程
# su - test
[test@clone1 ~]$ vim /etc/passwd
# pkill -U test
killall:
killall 命令名字 //殺死全部的同名進(jìn)程
xkill:殺死圖形化資源
當(dāng)執(zhí)行了xkill之后,鼠標(biāo)會(huì)變成“x”形浴讯,點(diǎn)到任何圖形資源朵夏,就會(huì)終止該資源的運(yùn)行
進(jìn)程的nice值
謙讓值:nice
作用:指定或者調(diào)整用戶進(jìn)程的nice值
nice值越高,該進(jìn)程搶占資源的能力越弱
nice值越低榆纽,該進(jìn)程搶占資源的能力越強(qiáng)
范圍:-20~19
相關(guān)命令
nice -- 運(yùn)行時(shí)直接設(shè)置nice值
用法: nice -n 數(shù)字 command
renice -- 對(duì)于已經(jīng)運(yùn)行的,調(diào)整nice值
用法: renice 數(shù)字 PID