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