你是怎么在 Linux 干掉進(jìn)程的?

我想干掉Liunx某個進(jìn)程怎么搞?
如果進(jìn)程在前臺運(yùn)行,你可以使用 Ctrl+C 終端快捷方式。但是,如果進(jìn)程不可見(在后臺運(yùn)行),你可以使用專用命令殺死它。
終止進(jìn)程是指在執(zhí)行過程中停止進(jìn)程。如果你知道進(jìn)程ID(PID),則可以使用 kill 命令,如下所示:
> kill <signal> <PID>在上面的語法中,signal指的是要發(fā)送終止的終止信號,并且PID指的是進(jìn)程的 ID。
還有一個 killall 命令,我將在本文中討論kill 和 killall 命令。
Linux 中的終止信號
當(dāng)一個進(jìn)程被操作系統(tǒng)或用戶終止時,即進(jìn)程沒有自行完成,它會被發(fā)送一個終端信號。
以下是可用的終止信號:
信號  | 數(shù)值  | 描述  | 
SIGHUP  | 1  | 信號掛斷:當(dāng)控制它的終端關(guān)閉時發(fā)送到進(jìn)程。  | 
SIGINT  | 2  | 信號中斷:當(dāng)用戶終止進(jìn)程時發(fā)送給進(jìn)程的信號.(例如 Ctrl + X)  | 
SIGKILL  | 9  | Signal Kill:立即退出進(jìn)程的信號,不允許它保存當(dāng)前狀態(tài)。  | 
SIGTERM  | 15  | 信號終止:發(fā)送到信號以請求終止進(jìn)程。該信號可以被進(jìn)程忽略。但這是終止進(jìn)程的首選方式,因?yàn)樗梢栽谶M(jìn)程收到 SIGTERM 時釋放資源。  | 
SIGSTOP  | 19 (for x86, ARM and most others) 17 (for Alpha) 23 (for MIPS) 24 (for PARISC)  | 停止信號:停止進(jìn)程的信號,但稍后將恢復(fù)。  | 
常用的信號 9 和 15
獲取進(jìn)程的PID
你還需要了解要終止的進(jìn)程的詳細(xì)信息。使用 kill 命令,你必須提供進(jìn)程的 ID(PID)。你可以從進(jìn)程名稱中獲取 PID
> pidof exact_process_name
比如獲取java進(jìn)程的進(jìn)程號
> pidof java
8075 1032
在 Linux 命令行中終止進(jìn)程
使用 kill 命令
該kill命令要求你知道要終止的進(jìn)程的 ID,以及可選的終止信號。
要簡單地終止命令,請使用以下語法:
kill [signal] <PID>向 PID 發(fā)送終止信號是可選的,如果未提供任何信號,則kill默認(rèn)發(fā)送 SIGTERM ( 15),以正常終止所述進(jìn)程結(jié)束。
我啟動了sleep 命令的后臺進(jìn)程(它給了我一個 PID)。我們使用kill命令殺死它。
殺死這個特定的實(shí)例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 命令
如果不知道某個進(jìn)程的PID是多少,或者該進(jìn)程有多個子進(jìn)程,又想一次性殺死子進(jìn)程和父進(jìn)程,可以使用killall命令。
killall [signal] <process-name>與kill命令類似,指定終止信號是可選的。當(dāng)沒有指定終止信號時,killall將發(fā)送 SIGTERM ( 15) 以優(yōu)雅地關(guān)閉所述進(jìn)程。
為了演示killall的使用,我將殺死兩個正在運(yùn)行的 sleep 命令。
$ sleep 120 &
[1] 112351
$ sleep 2000 &
[2] 112362
$ killall sleep
[1]- Terminated sleep 120
[2]+ Terminated sleep 2000
此外,你可以使用該-e標(biāo)志來查找進(jìn)程名稱的完全匹配。
使用 pkill 命令
命令的替代命令kill是pkill命令。它是pgrep和kill命令的組合。
killall殺死所有具有匹配名稱的進(jìn)程。另一方面,pkill使用模式匹配來匹配進(jìn)程并殺死它們。
pkill [options] pattern
命令中可用的一些有用選項(xiàng)pkill如下:
- -u: 特定所有者擁有的進(jìn)程
 - -x: 完全匹配模式的進(jìn)程
 - -signal: 指定終止信號(默認(rèn)為 SIGTERM)
 
結(jié)束nginx進(jìn)程
> pkill nginx















 
 
 

 
 
 
 