亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

在Linux命令行中終止進程的操作命令

 更新時間:2023年12月17日 15:40:07   作者:wljslmz  
如果你想在linux上停止某個進程,你會怎么操作,本文小編給大家詳細介紹了如何在?Linux?命令行中終止進程,文中通過代碼示例給大家介紹的非常詳細,需要的朋友可以參考下

如果命令/進程在前臺運行,您可以使用 Ctrl+C 終端快捷方式,但是,如果進程不可見(在后臺運行),您可以使用專用命令“殺死它”。

“終止進程”是指在執(zhí)行過程中停止進程,如果您知道進程 ID (PID),則可以使用 kill 命令,如下所示:

kill <signal> <PID>

在上面的語法中,signal指的是要發(fā)送終止的終止信號,并且PID指的是進程的 ID。

還有一個 killall 命令,我將在本文中討論kill 和 killall 命令。

在你開始殺死進程之前,你應(yīng)該知道一些事情,例如有哪些終止信號可用,如何找到 PID 等。

讓我們先從信號開始。

Linux 中的終止信號

當(dāng)一個進程被操作系統(tǒng)或用戶終止時,即進程沒有自行完成,它會被發(fā)送一個終端信號。

以下是可用的終止信號:

  • SIGHUP
    • 1:信號掛斷:當(dāng)控制它的終端關(guān)閉時發(fā)送到進程。
  • SIGINT
    • 2:信號中斷:當(dāng)用戶終止進程時發(fā)送給進程的信號。(例如 Ctrl + X)
  • SIGKILL
    • 9:Signal Kill:立即退出進程的信號,不允許它保存當(dāng)前狀態(tài)。
  • SIGTERM
    • 15:信號終止:發(fā)送到信號以請求終止進程。該信號可以被進程忽略。但這是終止進程的首選方式,因為它可以在進程收到 SIGTERM 時釋放資源。
  • SIGSTOP
    • 19(x86、ARM)、17(Alpha)、23(MIPS)、24(PARISC):信號停止:停止進程但稍后恢復(fù)的信號。

一般情況會使用信號 9 和 15

獲取進程的PID

您還需要了解要終止的進程的詳細信息,使用 kill 命令,您必須提供進程的 ID (PID),您可以從進程名稱中獲取 PID:

pidof exact_process_name

在 Linux 命令行中終止進程

讓我們先看看 kill 命令,因為您將比 killall 更多地使用它。

使用 kill 命令

該kill命令要求您知道要終止的進程的 ID,以及可選的終止信號。

要簡單地終止命令,請使用以下語法:

kill [signal] <PID>

向 PID 發(fā)送終止信號是可選的,如果未提供任何信號,則kill默認(rèn)發(fā)送 SIGTERM ( 15),以正常終止所述進程結(jié)束。

我啟動了sleep 命令的后臺進程(它給了我一個 PID),讓我們嘗試使用kill命令殺死它。

殺死這個特定的實例sleep如下所示:

$  sleep 120 &
[1] 125686

$ kill 125686
[1]  + terminated  sleep 120

如果我想使用終止信號,我可以使用數(shù)值或信號本身:

$ sleep 120 &
[1] 125746

$ kill -SIGKILL 125746
[1]  + killed     sleep 120

####----##-----####

$ sleep 120 &
[1] 125759

$ kill -9 125759
[1]  + killed     sleep 120

如果 kill 命令沒有指定信號,則默認(rèn)使用 SIGTERM (15)。

使用 killall 命令

如果不知道某個進程的PID是多少,或者該進程有多個子進程,又想一次性殺死子進程和父進程,可以使用killall命令。

killall [signal] <process-name>

與kill命令類似,指定終止信號是可選的,當(dāng)沒有指定終止信號時,killall將發(fā)送 SIGTERM ( 15) 以優(yōu)雅地關(guān)閉所述進程。

為了演示 的使用killall,我想殺死兩個正在運行的 sleep 命令。

$ sleep 120 &
[1] 18609

$ sleep 2000 &
[2] 18612

$ killall sleep
[1]-  Terminated              sleep 120
[2]+  Terminated              sleep 2000

此外,您可以使用該-e標(biāo)志來查找進程名稱的完全匹配。

使用 pkill 命令

命令的替代命令kill是pkill命令,它是pgrep和kill命令的“組合”。

killall殺死所有具有匹配名稱的進程。另一方面,pkill使用模式匹配來匹配進程并殺死它們。

下面是語法:

pkill [options] pattern

命令中可用的一些有用選項pkill如下:

  • -u: 特定所有者擁有的進程
  • -x: 完全匹配模式的進程
  • -signal: 指定終止信號(默認(rèn)為 SIGTERM)

假設(shè)我的guest計算機上有一個用戶當(dāng)前不應(yīng)該運行任何進程,如果有,我想終止它們,我怎樣才能做到這一點?

$ ps aux | grep sleep
guest     126061  0.0  0.0   6664   428 pts/3    S    10:14   0:00 sleep 50

$ sudo pkill -u guest

請注意,我使用sudo的是因為我正在處理不屬于我的用戶的進程。

以上就是在Linux命令行中終止進程的操作命令的詳細內(nèi)容,更多關(guān)于Linux命令行中終止進程的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

最新評論