我想干掉Liunx某個進程怎么搞?
如果進程在前臺運行,你可以使用 Ctrl+C 終端快捷方式。但是,如果進程不可見(在后臺運行),你可以使用專用命令殺死它。
終止進程是指在執行過程中停止進程。如果你知道進程ID(PID),則可以使用 kill 命令,如下所示:
>kill
在上面的語法中,signal指的是要發送終止的終止信號,并且PID指的是進程的 ID。
還有一個 killall 命令,我將在本文中討論kill 和 killall 命令。
Linux 中的終止信號
當一個進程被操作系統或用戶終止時,即進程沒有自行完成,它會被發送一個終端信號。
以下是可用的終止信號:
信號 | 數值 | 描述 |
---|---|---|
SIGHUP | 1 | 信號掛斷:當控制它的終端關閉時發送到進程。 |
SIGINT | 2 | 信號中斷:當用戶終止進程時發送給進程的信號.(例如 Ctrl + X) |
SIGKILL | 9 | Signal Kill:立即退出進程的信號,不允許它保存當前狀態。 |
SIGTERM | 15 | 信號終止:發送到信號以請求終止進程。該信號可以被進程忽略。但這是終止進程的首選方式,因為它可以在進程收到 SIGTERM 時釋放資源。 |
SIGSTOP | 19 (for x86, ARM and most others) 17 (for Alpha) 23 (for MIPS) 24 (for PARISC) | 停止信號:停止進程的信號,但稍后將恢復。 |
常用的信號 9 和 15
獲取進程的PID
你還需要了解要終止的進程的詳細信息。使用 kill 命令,你必須提供進程的 ID(PID)。你可以從進程名稱中獲取 PID
>pidofexact_process_name
比如獲取java進程的進程號
>pidofjava 80751032
在 Linux 命令行中終止進程
使用 kill 命令
該kill命令要求你知道要終止的進程的 ID,以及可選的終止信號。
要簡單地終止命令,請使用以下語法:
kill[signal]
向 PID 發送終止信號是可選的,如果未提供任何信號,則kill默認發送 SIGTERM (15),以正常終止所述進程結束。
我啟動了sleep 命令的后臺進程(它給了我一個 PID)。我們使用kill命令殺死它。
殺死這個特定的實例sleep如下所示:
$sleep120& [1]125686 $kill125686 [1]+terminatedsleep120
如果我想使用終止信號,我可以使用數值或信號本身:
$sleep120& [1]125746 $kill-SIGKILL125746 [1]+killedsleep120 $sleep120& [1]125759 $kill-9125759 [1]+killedsleep120
如果 kill 命令沒有指定信號,則默認使用 SIGTERM (15)。
使用 killall 命令
如果不知道某個進程的PID是多少,或者該進程有多個子進程,又想一次性殺死子進程和父進程,可以使用killall命令。
killall[signal]
與kill命令類似,指定終止信號是可選的。當沒有指定終止信號時,killall將發送 SIGTERM (15) 以優雅地關閉所述進程。
為了演示killall的使用,我將殺死兩個正在運行的 sleep 命令。
$sleep120& [1]112351 $sleep2000& [2]112362 $killallsleep [1]-Terminatedsleep120 [2]+Terminatedsleep2000
此外,你可以使用該-e標志來查找進程名稱的完全匹配。
使用 pkill 命令
命令的替代命令kill是pkill命令。它是pgrep和kill命令的組合。
killall殺死所有具有匹配名稱的進程。另一方面,pkill使用模式匹配來匹配進程并殺死它們。
pkill[options]pattern
命令中可用的一些有用選項pkill如下:
-u: 特定所有者擁有的進程
-x: 完全匹配模式的進程
-signal: 指定終止信號(默認為 SIGTERM)
結束nginx進程
-
Linux
+關注
關注
87文章
11315瀏覽量
209812 -
操作系統
+關注
關注
37文章
6846瀏覽量
123419 -
PID
+關注
關注
35文章
1472瀏覽量
85602
原文標題:你是怎么在 Linux 干掉進程的?
文章出處:【微信號:良許Linux,微信公眾號:良許Linux】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論