aix基本命令之kill

wmlm發表於2007-03-08
傳送一個訊號到正在執行的程式。[@more@]

語法
傳送訊號到程式
kill [ -s { SignalName | SignalNumber } ] ProcessID ...

kill [ - SignalName | - SignalNumber ] ProcessID ...

列出訊號名字
kill -l [ ExitStatus ]

描述
kill 命令傳送一個訊號(預設,SIGTERM 訊號)到一個正執行的程式。預設操作一般是停止程式。如果想停止一個程式,在 ProcessID 變數中指定程式識別符號(PID)。這個 shell 報告每個在後臺執行的程式的 PID(除非在一個管道上啟動多個程式,這個種情況下,shell 報告最後一個程式號)。還可用 ps 命令來發現命令的程式標識號。

root 使用者可用 kill 命令來停止任何程式。如果不是 root 使用者,必須已經啟動了要停止的程式。

SignalName 以大小寫無關的方式被辨認,無 SIG 字首。

如果指定的 SignalNumber 是 0,kill 命令檢查指定 PID 的有效性。

標誌

-s{SignalName | SignalNumber} 將訊號指定為訊號數或訊號名,例如為 SIGKILL 訊號指定 -9 或KILL。
-SignalName 指定一個訊號名,如 SIGHUP。
-SignalNumber 指定一個訊號數。

注: 在語法中要用預設的訊號指定負 PID,必須指定 - - 作為一個訊號。否則,第一個運算元被解釋為一個 SignalNumber。
ProcessID 指定一個十進位制整數代表一個要被髮送訊號的程式或程式組。如果 PID 是一個正值,kill 命令傳送程式 ID 與 PID 相等的程式。如果 PID 值是 0,kill 命令傳送訊號到所有程式組的 ID 等於傳送者程式組的 ID 的程式。不傳送訊號到 PID 為 0 或 1 的程式。如果 PID 是 -1,kill命令傳送訊號到所有由傳送者的有效使用者所有的程式。不傳送訊號到 PID 為 0 或 1 的程式。 如果訊號為非 -1 的負數,kill 命令傳送訊號到程式組標識等於 PID 絕對值的所有程式。
-l 列出由實現支援的訊號名字。
-lExitStatus 列出去掉了公共 SIG 字首的訊號名。如果 ExitStatus 是一個十進位制整數值,對應那個訊號的訊號名被顯示。如果 ExitStatus 是一個對應於由這個訊號終止的程式的退出狀態值,則顯示對應於這個終止這個程式的訊號的名字。

退出狀態
該命令返回以下退出值:

0 對每個 ProcessID 運算元至少發現一個匹配的程式,並且指定的訊號至少為一個匹配的程式成功處理。
>0 有錯誤發生。

示例
要停止一個給定的程式,請輸入:

kill 1095
這個透過傳送預設的 SIGTERM 訊號到程式 1095 來停止它。注:如果程式 1095 已經做了特殊安排來忽略或覆蓋 SIGTERM 訊號,這個程式實際可能不停止。

要停止幾個忽略預設訊號的程式,請輸入:

kill -kill 2098 1569
這個傳送訊號 9,即 SIGKILL 訊號,來處理 2098 和 1569。 SIGKILL 訊號是個通常不能被忽略或覆蓋的特殊訊號。

要停止所有程式並登出自己,請輸入:

kill -kill 0
這個傳送訊號 9,就是SIGKILL 訊號,到所有組 ID 等於傳送者組 ID 的程式。因為 shell 不能忽略 SIGKILL 訊號,它也停止登入 shell 並登出使用者。

要停止您擁有的所有程式,請輸入:

kill -9 -1
這傳送訊號 9,就是 SIGKILL 訊號,到所有由有效使用者擁有的程式,甚至那些在其他工作站上啟動的和屬於其他程式組的程式。如果一個您請求的列表正被列印,它也被停止。

要傳送一個不同的訊號到一個程式,請輸入:

kill -USR1 1103
kill 命令的名字是一個誤導,因為許多訊號,包括 SIGUSR1,並不停止程式。發生在 SIGUSR1 訊號上的操作由正執行的特定的應用程式定義。


注:要傳送訊號 15,或用這種形式的 kill 命令傳送 SIGTERM 訊號,必須明確地指定 -15 或 TERM。

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