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