AIX命令集錦五(進程管理命令)

5.1、進程監視命令ps:
ps命令支持兩種格式標準
X/Open標準:
ps [-Aaedfklm][-F format][-o specifier[=header],...][-p proclist][-G|-g grouplist][-t termlist][-U|-u userlist]
伯克利(Berkley)標準:
ps [a][c][e][ew][eww][g][n][U][w][x][l|s|u|v][t Tty][ProcessNumber]
一般X/Open標準使用比較廣泛,以下只針對該標準進行說明:
-A 表示顯示系統中所有的進程,包括進程組組長(process group leader)和核心進程
-a 表示顯示系統中所有的進程,除了進程組組長和沒有相關終端的進程
-d 表示顯示系統中所有的進程,除了進程組組長,但包括核心進程
-e 表示顯示系統中所有的進程,除了核心進程
-f 表示 顯示進程的詳細信息
-G grouplist 顯示grouplist列表中包含的所有進程組中的進程
-g 同-G grouplist
-k 顯示核心進程
-l 以長格式顯示進程信息,輸出的內容比-f參數輸出的內容多
-m 顯示進程中的線程信息
-o format 按format 指定的格式顯示進程信息
-P Plist顯示由Plist指定進程號的進程信息
-t TList 顯示由Tlist指定終端上的進程信息
-U Ulist 顯示由Ulist指定用戶名或用戶標識號的進程信息
-u Ulist 同-U Ulist
進程組組長:每個進程除了記錄它自己的進程號(PID)外還記錄了它的父進程號(PPID)、它所屬進程組的ID(PGID),進程組是由一個或
好幾個進程所組成的集合,進程組組長的PID與進程組的ID相同,因此PGID也就是進程組組長,當一個進程的進程組ID與它的進程ID相同時,
這個進程就稱爲進程組組長。
ps -o "%p %P %r %a" -A 表示顯示所有的進程的進程號、父進程號、進程組號和產生的進程
ps 表示只顯示用戶登陸的終端的進程狀態
如果讓一個進程在後臺運行,我們可以在後面加一個"&"符號
殭屍進程:當一個子進程死亡後,在父進程清除它之前,這個子進程就成了一個殭屍進程,它的屍體還保留在進程表中(就是說它仍然有進
程號),直到父進程調用wait()後才能將它從進程表清除掉,這種屍體還保留在進程表中的進程就稱爲殭屍進程。當一個子進程先於父進程
死亡而父進程又沒有調用wait()來清除時,就會產生殭屍進程,一般標記爲defunct符號。殭屍進程會影響系統的效率。
ps -kl 表示顯示核心進程
deamon進程(守侯進程):是一個永不停止的進程,它處於後臺運行並且大多時間處於空閒狀態。
ps -elm 表示顯示線程信息

執行shell腳本test.sh的三種方式:
ksh test.sh

chmod +x test.sh
test.sh

.test.sh

當執行某一shell腳本在後臺運行,並且該用戶退出時不能中斷,則需要用nohup命令
nohup ksh test.sh &

5.2、殺死進程命令:
kill [-s {signalname|signalnumber}] processid...
kill [- signalname|- signalnumber ] processid...
processid 表示接收信號的進程的ID號
signalname 表示信號名
signalnumber 信號的代號
如果不指定signalname和signalnumber就表示發送sigterm信號(即終止信號)
kill 2098 表示終止進程號爲2098的進程,即向2098進程發送了一個終止信號
kill -9 2098 8090 /kill -kill 2098 8090 表示向2098 和8090進程發送sigkill信號
kill -9 0 表示終止創建的所有進程,退出系統並返回到login狀態下
kill -9 -1 表示殺死所有創建的進程,但不退出系統
kill -l 表示顯示kill命令所支持的信號名
kill -l 9 表示顯示對應整數的信號名
killall [-][-signal] 表示殺死某一用戶啓動的所有進程
- 表示先發送一sigterm信號再發送sigkill信號,收到sigterm信號後的所有進程有30秒的處理後事的時間,即收到sigterm信號後,
有一個清理的機會。
[-][-signal] 表示先發送一個signal信號(可以是signalname也可以是signalnumber),然後再發送sigkill信號,同樣,在收到
第一個信號時也有30秒的處理時間。
killall 表示殺死某一用戶所有啓動的後臺進程,即發送一個信號9
killall - 表示殺死某一用戶所有啓動的後臺進程並提供一個結束前的清理資源的機會

5.3、proc系列命令:
procwdx 5381 顯示進程5381的當前工作目錄
procfiles -n 5381 顯示由進程5381打開的所有文件的描述符信息
procflags 5381 顯示進程5381 的跟蹤標記,包括已經實施和未實施的信號
proccred 5381 顯示進程所屬的有效的、真實的、保留的用戶ID和組ID
procmap 5381 顯示進程的地址空間映射關係
procldd 5381 顯示動態加載程序列表,包括共享對象
procsig 5381 顯示進程在收到信號之後所採取的動作
procstack 5381 顯示進程中當前線程的每一個堆棧結構的十六進制地址和符號名
procstop 5381/用戶ID 表示使用pr_requested事件的/proc接口來停止進程運行
procrun 5381 表示啓動由procstop命令停止的進程
procwait 5381 表示等待所有指定的進程停止運行,如果帶-v參數,則顯示指定進程的詳細信息
proctree 5381/ 表示顯示包含指定進程的PID或用戶的進程樹、

當進程異常終止運行時,系統會把該進程對應的地址空間中的數據寫到core文件中,這個過程稱爲dump。

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