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