Linux系統管理—進程管理

Linux中每個進程都有一個獨立的進程號PID,系統通過PID操控進程。其中原始進程是init他的PID總是1。

Linux進程的五種狀態:

(1)運行:正在運行或在就緒隊列中等待

(2)中斷:休眠中,正在等待某個事件發生或者等待某個信號

(3)不可中斷:收到信號不喚醒和不可運行,一直到有中斷髮生

(4)僵死:進程已經終止,但是PID還在,直到父進程調用wait4()將其釋放

(5)停止:進程收到SIGSTOP,SIGSTP,SIGTIN,SIGTOU信號停止


ps(process status)

ps [選項]

顯示系統中進程信息,他是顯示當前那些進程的快照信息,如果需要動態顯示進程信息需要使用top

     a:顯示所有,包括終端的進程

     u:顯示進程的所有者

     -a:顯示所有當前終端下執行的進程

     -e:顯示所有進程

     -l:以長列表形式顯示

常與grep組合使用

ps -ef | grep ssh


pstree(process status tree)

以樹狀方式顯示進程的父子關係。使用ASCII字符顯示,清晰表達進程之間的關係

pstree [選項]
-a 顯示每個進程的完整命令

-c 不是用精簡法

-h 標明執行的過程

-l 採用長格式顯示樹狀圖

-p 顯示進程號

-u 顯示用戶名稱


top命令

top [選項]

動態顯示系統正在執行的進程相關信息,包括PID,CPU,內存佔用等

-u 批處理

-c 顯示整個命令而不是顯示命令名

-d 指定兩次屏幕信息刷新時間

-i 不顯示閒置或僵死的進程

-p制定某個進程PID,監視此進程

-s是top命令在安全模式下運行,去除交互所帶來的潛在危險

top交互式命令

c:切換命令名稱的是否完整顯示

Ctrl+L:擦除並且重寫屏幕

f:從當前顯示中添加或者刪除列

h:顯示幫助信息

i:忽略閒置和僵死進程

k:終止一個進程

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

P:根據CPU使用排序顯示

q:退出程序


搜索進程

pgrep [選項] 進程

通過程序名稱或者其他屬性查找進程,一般用來判斷程序是否正在運行

pidof [選項] 進程名

通過確切的進程名字找到程序的PID

-s:只顯示一個pid

ps | grep XXX

通過管道來搜索


控制進程

kill [信號代碼] PID

用來殺死一個進程,一般和ps/pidof/pstree/top等結合使用,先找到PID,然後kill掉

信號代碼:

-0 給當前所有在進程組的進程發送信號

-1 給所有進程號大於1的發送信號

-9 強行終止進程

-15終止進程(默認)

-a 種植所有進程

-u指定用戶

killall [-signal] <進程名>

殺死指定名字的進程

pkill [options] pattern

通過進程名字直接殺死所有進程

xkill

殺死圖形界面的程序


進程優先級

nice [-n ADJUST] [--adjustment = ADJUST] [--help] [--version] [command]

進程的優先級用nice值表示,nice可以調整命令的運行優先級,nice值範圍是-20~19共40個等級,數值越小,優先級越高,只有root有權使用負值。如果nice之後沒有加上command參數,那麼會顯示目前執行的等級。優先級超過-19按-19算,超過20按20算。

如:

nice -n 5 ls

renice命令允許用戶修改一個正在運行的進程的優先等級

renice priority [[-p] pids] [[-g] pgrps] [[-u] users]

renice +2 -p 234 -u root

上面的命令將pid爲234及root用戶擁有的進程優先級加1


控制前後臺進程

將一個前臺進程放入後臺

命令 &

如: top & 將top命令放入後臺執行

控制後臺進程

jobs    //列出系統作業號和名稱

fg 作業號   // 前臺恢復運行

bg 作業號    //後臺恢復運行

kill 作業號     //殺死作業


以守護進程方式執行任務:nohup

nihup command [Arg...] [&]

使用nohup命令運行的程序註銷後仍可以在後臺運行。

nohup /root/test.sh &


定時執行任務

可以使用at命令定時執行任務

at [-f file] [-mldv] TIME

at命令在制定時間執行某個命令或程序。TIME格式:HH:MM如果制定超過一天MM/DD/YY 月日年

atq  //查詢當前用戶正在等待的任務

atrm <任務號>  //刪除一個正在等待的任務

at之後進入交互式命令,開始輸入要執行的命令,然後Ctrl+D退出交互式模式

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