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

antcorps發表於2008-08-14
AIX命令集錦五(程式管理命令)[@more@]

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。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/20444553/viewspace-1008994/,如需轉載,請註明出處,否則將追究法律責任。

相關文章