Linux的kill命令與訊號控制

2021-05-10 20:34:04 字數 1489 閱讀 8638

現在,回到sighup的話題

sighup的發音是「sig-hup」,是signal hangup的縮寫,含義是「中止訊號」。你如何傳送乙個sighup訊號呢?這裡有幾種方式:

# kill -hup [pid]

# killall -hup [process-name]

# kill -1 [pid]

# killall -1 [process-name]

因此,你可以使用pid或者名稱,訊號名稱或者號碼。那麼為什麼要這樣做而不使用/etc/init.d/foo命令重新啟動呢?使用它們自己的 init(初始化)檔案來控**務是優先選擇的方式,因為這些檔案通常包含健全和錯誤檢查以及額外的功能。使用「kill」命令和訊號的主要原因是盡可能 明確地終止掛起和失控的程序,而不必重新啟動或者登出。

終止程序

正如你在關於訊號的man page中所看到的,有十幾種控制程序的方法。下面是一些常用的方法:

kill -stop [pid]

傳送sigstop (17,19,23)停止乙個程序,而並不消滅這個程序。

kill -cont [pid]

傳送sigcont (19,18,25)重新開始乙個停止的程序。

kill -kill [pid]

傳送sigkill (9)強迫程序立即停止,並且不實施清理操作。

kill -9 -1

終止你擁有的全部程序。

sigkill和sigstop訊號不能**捉、封鎖或者忽略,但是,其它的訊號可以。所以這是你的終極**。

bash shell的kil命令l

bash外殼包含乙個內建的kill命令,當執行下面命令:

$ type -all kill

kill is a shell built-in

kill is /bin/kill

命令的結果表明有兩個kill命令,乙個是bash的內建命令,另乙個是/bin/kill可執行程式。一般來說這兩個命令不太可能遇到衝突的情況,不過,如果你確實遇到了kill命令行為異常時,你可以明確的指定/bin/kill命令。

你一定要進一步查閱下面的資源中列出的參考資源來了解linux中kill的妙用,因為這是你進入維護linux系統領域的門票。這些知識能夠讓你像做外科手術一樣對系統進行維護,而不用在遇到問題時每一次都重新啟動系統,就像我們知道的某些蹩腳的作業系統那樣。

資源linux cookbook一書的第七章「開始和終止linux」

bash (1) - gnu bourne-again shell

yes (1) - 在被終止前反覆列印字元

signal (7) - 可用訊號列表

ps (1) - 報告當前程序的快照

kill (1) - 向乙個程序發出訊號

killall (1) - 按名字消滅程序

pkill (1) - 根據名字和其它屬性檢視或者發出程序訊號

skill (1) - 傳送乙個訊號或者報告程序狀態

xkill (1) - 按照x資源消滅乙個客戶程式

kill 命令的訊號量說明

os centos 7.8 kill l 1 sighup 2 sigint 3 sigquit 4 sigill 5 sigtrap 6 sigabrt 7 sigbus 8 sigfpe 9 sigkill 10 sigusr1 11 sigse 12 sigusr2 13 sigpipe 14...

精通Linux的「kill」命令

參考 無論你使用哪種作業系統,你一定會遇到某個行為失常的應用,它把自己鎖死並拒絕關閉。在linux 還有mac 你可以用乙個 kill 命令強制終結它。在這個教程中,我們將展示給你多種方式使用 kill 命令終結應用。當你執行乙個 kill 命令,你實際上傳送了乙個訊號給系統,讓它去終結不正常的應用...

精通Linux的「kill」命令

參考 無論你使用哪種作業系統,你一定會遇到某個行為失常的應用,它把自己鎖死並拒絕關閉。在linux 還有mac 你可以用乙個 kill 命令強制終結它。在這個教程中,我們將展示給你多種方式使用 kill 命令終結應用。當你執行乙個 kill 命令,你實際上傳送了乙個訊號給系統,讓它去終結不正常的應用...