本文主要命令pstree、ps、top、nice、free、screen
1. 程序&&進程
程序是靜態的,進程是動態的,即運行中的程序。
一個程序至少有一個進程,一個進程至少有一個線程,即主線程。進程之間內存獨立,線程之間內存共享,共享所屬進程的內存。
2. pstree
查看進程樹
顯示進程樹及其進程號
pstree -p | more
3. tree
安裝tree
yum install tree -y
顯示/boot目錄的樹形結構
tree /boot
4. ps
列出所有進程,包含未在運行的進程:
ps -aux
數據項:
USER:運行此進程的用戶名
PID :該 process 的號碼。
%CPU:該 process 使用掉的 CPU 資源百分比;
%MEM:該 process 所占用的物理內存百分比;
VSZ :該 process 使用掉的虛擬內存量 (Kbytes)
RSS :該 process 占用的固定的內存量 (Kbytes)
TTY :該 process 是在那個終端機上面運作,若與終端機無關,則顯示 ?如init進程屬於內核,另外, tty1-tty6 是本機上面的登入者程序,若為 pts/0 等等的,則表示為由網絡連接進主機的程序。
STAT:該程序目前的狀態,Linux進程有5種基本狀態:
R :(正在運行或在運行隊列中等待) ;
S :該程序目前正在睡眠當中 ,但可被某些訊號 (signal) 喚醒。
T :該程序目前暫停了
Z : 僵屍進程
5. top
動態查看進程
此命令包含大量的信息,可以使用man查詢具體的信息。
6. kill
殺死只有一個進程的服務:
kill -15 PID
殺死包含多個進程的服務:
killall name #name是進程名字, 或者pkill name
7. nice
優先級控制
進程默認的優先級是0, 進程優先級范圍-20~19, 數值越小優先級越高,普通用戶的優先級為0-19。
設置某個進程的優先級:
nice -n -5 vim a.txt
修改某個運行中的進程的優先級:
renice -n 5 PID
8. jobs
前後台進程
後台運行某個進程
vim a.txt &
查詢所有正在後台運行的進程
jobs
將某個後台進程拉到前台執行
fg jobID #jobID即jobs命令查出的後台任務
9.screen
使用&後台運行的命令,在終端關閉之後即退出,因此可以采用screen改進,screen可以在再次打開中斷後,喚醒後台進程,繼續運行。
screen
vim a.txt
按"ctrl +a +d"
再次打開終端:
查看後台進程
screen -ls
恢復後台進程
screen -r ID
10. nohup
screen雖然可以在再次打開終端後重新運行後台進程,但是在喚醒之前後台進程不能運行,因此可以考慮nohup,即用戶關閉終端之後不影響後台進程的運行。