首頁 > 系統教程 > Linux > 主體

你是怎麼在 Linux 幹掉行程的?

WBOY
發布: 2024-02-09 19:06:09
轉載
1210 人瀏覽過

如果您想終止一個正在執行的Linux進程,您可以使用多種方法。如果進程在前台運行,您可以使用快速鍵Ctrl C來終止它。但是,如果進程在背景運行且不可見,您可以使用專門的命令來殺死它。

你是怎么在 Linux 干掉进程的?

#要終止一個行程,就是要在它執行過程中停止它。如果您知道進程的ID(PID),則可以使用kill指令來終止它,如下所示:

> kill  
登入後複製

在上面的語法中,signal指的是要傳送終止的終止訊號,而PID指的是行程的 ID。

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

Linux 中的終止訊號

當一個行程被作業系統或使用者終止時,即進程沒有自行完成,它會被發送一個終端訊號。

以下是可用的終止訊號:

19 (for x86, ARM and most others) 17 (for Alpha) 23 (for MIPS) 24 (for PARISC)停止訊號:停止進程的訊號,但稍後將恢復。
訊號 數值 描述
SIGHUP 1 訊號掛斷:當控制它的終端關閉時發送到進程。
SIGINT#2 訊號中斷:當使用者終止行程時傳送給行程的訊號.(例如 Ctrl X)
SIGKILL#9 Signal Kill:立即退出進程的訊號,不允許它保存目前狀態。
SIGTERM#15 訊號終止:發送到訊號以請求終止進程。該訊號可以被進程忽略。但這是終止進程的首選方式,因為它可以在進程收到 SIGTERM 時釋放資源。
SIGSTOP
####

常用的信号 9 和 15

获取进程的PID

你还需要了解要终止的进程的详细信息。使用 kill 命令,你必须提供进程的 ID(PID)。你可以从进程名称中获取 PID

> pidof exact_process_name
登入後複製

比如获取java进程的进程号

> pidof java
8075 1032
登入後複製

在 Linux 命令行中终止进程

使用 kill 命令

kill命令要求你知道要终止的进程的 ID,以及可选的终止信号。

要简单地终止命令,请使用以下语法:

kill [signal] 
登入後複製

向 PID 发送终止信号是可选的,如果未提供任何信号,则kill默认发送 SIGTERM ( 15),以正常终止所述进程结束。

我启动了sleep 命令的后台进程(它给了我一个 PID)。我们使用kill命令杀死它。

杀死这个特定的实例sleep如下所示:

$  sleep 120 &
[1] 125686

$ kill 125686
[1]  + terminated  sleep 120
登入後複製

如果我想使用终止信号,我可以使用数值或信号本身:

$ sleep 120 &
[1] 125746

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

$ sleep 120 &
[1] 125759

$ kill -9 125759
[1]  + killed     sleep 120
登入後複製

如果 kill 命令没有指定信号,则默认使用 SIGTERM (15)。

使用 killall 命令

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

killall [signal] 
登入後複製

kill命令类似,指定终止信号是可选的。当没有指定终止信号时,killall将发送 SIGTERM ( 15) 以优雅地关闭所述进程。

为了演示killall的使用,我将杀死两个正在运行的 sleep 命令。

$ sleep 120 &
[1] 112351

$ sleep 2000 &
[2] 112362

$ killall sleep
[1]-  Terminated              sleep 120
[2]+  Terminated              sleep 2000
登入後複製

此外,你可以使用该-e标志来查找进程名称的完全匹配。

使用 pkill 命令

命令的替代命令killpkill命令。它是pgrepkill命令的组合。

killall杀死所有具有匹配名称的进程。另一方面,pkill使用模式匹配来匹配进程并杀死它们。

pkill [options] pattern
登入後複製

命令中可用的一些有用选项pkill如下:

  • -u: 特定所有者拥有的进程
  • -x: 完全匹配模式的进程
  • -signal: 指定终止信号(默认为 SIGTERM)

结束nginx进程

> pkill nginx
登入後複製

以上是你是怎麼在 Linux 幹掉行程的?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:lxlinux.net
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板