Linux視頻教程之如何在Linux系統(tǒng)中結(jié)束進(jìn)程或中止程序
在零基礎(chǔ)參加Linux培訓(xùn)中有幾種使用命令行或圖形界面終止一個(gè)程序的方式。進(jìn)程出錯(cuò)的時(shí)候,您可能會(huì)想要中止或是殺掉這個(gè)進(jìn)程。我們將探索在命令行和圖形界面中終止進(jìn)程或是應(yīng)用程序,這里我們使用gedit作為樣例程序。
使用命令行或字符終端界面
Ctrl+C
在命令行中調(diào)用gedit(如果您沒有使用gedit&命令)程序的一個(gè)問題是shell會(huì)話被阻塞,沒法釋放命令行提示符。在這種情況下,Ctrl+C(Ctrl和C的組合鍵)會(huì)很管用。這會(huì)終止gedit,并且所有的工作都將丟失(除非文件已經(jīng)被保存)。Ctrl+C會(huì)給gedit發(fā)送了SIGINT信號(hào)。這是一個(gè)默認(rèn)終止進(jìn)程的停止信號(hào),它將指示shell停止gedit的運(yùn)行,并返回到主函數(shù)的循環(huán)中,您將返回到提示符。
$gedit ^C
Ctrl+Z
它被稱為掛起字符。它會(huì)發(fā)送SIGTSTP信號(hào)給進(jìn)程。它也是一個(gè)停止信號(hào),但是默認(rèn)行為不是殺死進(jìn)程,而是掛起進(jìn)程。
下面的命令將會(huì)停止(殺死/中斷)gedit的運(yùn)行,并返回到shell提示符。
$gedit ^Z [1]+Stopped gedit $
一旦進(jìn)程被掛起(以gedit為例),將不能在gedit中寫入或做任何事情。而在后臺(tái),該進(jìn)程變成了一個(gè)作業(yè),可以使用jsbs命令驗(yàn)證。
$jobs [1]+Stopped gedit
jobs允許您在單個(gè)shell會(huì)話中控制多個(gè)進(jìn)程。您可以終止,恢復(fù)作業(yè),或是根據(jù)需要將作業(yè)移動(dòng)到前臺(tái)或是后臺(tái)。
讓我們在后臺(tái)恢復(fù)gedit,釋放提示符以運(yùn)行其它命令。您可以通過bg命令來做到,后跟作業(yè)ID(注意上面的jobs命令顯示出來的[1],這就是作業(yè)ID)。
$bg1 [1]+gedit &
這和直接使用gedit&啟動(dòng)程序效果差不多:
$gedit&
使用kill
kill命令提供信號(hào)的精確控制,允許您通過指定信號(hào)名或是信號(hào)數(shù)字為進(jìn)程發(fā)送信號(hào),后跟進(jìn)程ID或是PID。
我喜歡kill命令的一點(diǎn)是它也能夠根據(jù)作業(yè)ID控制進(jìn)程。讓我們使用gedit&命令在后臺(tái)開啟gedit服務(wù)。假設(shè)通過jobs命令我得到了一個(gè)gedit的作業(yè)ID,讓我們?yōu)間edit發(fā)送SIGINT信號(hào):
$ kill -s SIGINT %1
作業(yè)ID需要使用%前綴,不然kill會(huì)將其視作PID。
不明確指定信號(hào),kill仍然可以工作。此時(shí),默認(rèn)會(huì)發(fā)送能中斷進(jìn)程的SIGTERM信號(hào)。執(zhí)行kill-l可以查看信號(hào)名列表,使用mankill命令閱讀手冊。
使用killall
如果您不想使用特定的工作ID或者PID,killall允許您使用特定的進(jìn)程名。中斷gedit最簡單的killall使用方式是:
$killallgedit
它將終止所有名為gedit的進(jìn)程。和kill相似,默認(rèn)發(fā)送的信號(hào)是SIGTERM。使用-I選項(xiàng)忽略進(jìn)程名的大小寫。
$gedit&
[1]14852
$killall-IGEDIT
[1]+Terminatedgedit
查看手冊學(xué)習(xí)更多killall命令選項(xiàng)(如-u)。
使用xkill
您是否遇見過播放器崩潰,比如VLC灰屏或掛起?現(xiàn)在你可以像上面一樣獲得進(jìn)程的PID來殺掉它,或者使用xkill命令終止應(yīng)用程序。xkill允許您使用鼠標(biāo)關(guān)閉窗口。僅需在終端執(zhí)行xkill命令,它將會(huì)改變鼠標(biāo)光標(biāo)為一個(gè)X或是一個(gè)小骷髏圖標(biāo)。
以上就是關(guān)于扣丁學(xué)堂Linux視頻教程之解析如何在Linux系統(tǒng)中結(jié)束進(jìn)程或中止程序的詳細(xì)介紹,最后想要了解更多關(guān)于Linux就業(yè)班或行業(yè)前景,請關(guān)注扣丁學(xué)堂官網(wǎng)、微信等平臺(tái),扣丁學(xué)堂IT職業(yè)在線學(xué)習(xí)教育平臺(tái)為您提供權(quán)威的Linux視頻教程系統(tǒng),通過千鋒扣丁學(xué)堂金牌講師在線錄制的Linux視頻教程課程,讓你快速掌握Linux從入門到精通開發(fā)實(shí)戰(zhàn)技能??鄱W(xué)堂Linux技術(shù)交流群:692395686。微信號(hào):codingbb
*博客內(nèi)容為網(wǎng)友個(gè)人發(fā)布,僅代表博主個(gè)人觀點(diǎn),如有侵權(quán)請聯(lián)系工作人員刪除。