Linux でプロセスを強制終了するにはどうすればよいですか?

WBOY
リリース: 2024-02-09 19:06:09
転載
1210 人が閲覧しました

実行中の Linux プロセスを終了する場合は、いくつかの方法を使用できます。プロセスがフォアグラウンドで実行されている場合は、ショートカット Ctrl C を使用してプロセスを強制終了できます。ただし、プロセスがバックグラウンドで実行されていて表示されない場合は、特殊なコマンドを使用してプロセスを強制終了できます。

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

プロセスを終了するには、実行中にプロセスを停止する必要があります。プロセスの ID (PID) がわかっている場合は、次のように kill コマンドを使用してプロセスを強制終了できます。 リーリー

上記の構文では、

signal は送信される終了シグナルを指し、PID はプロセスの ID を指します。

killall コマンドもあります。この記事では kill および killall コマンドについて説明します。

Linux の終了シグナル

プロセスがオペレーティング システムまたはユーザーによって終了された場合、つまりプロセス自体が完了しなかった場合、ターミナル シグナルが送信されます。

利用可能な終了信号は次のとおりです:############信号### ###価値### ###説明する###

ため息をつきます1シグナルハングアップ: プロセスを制御している端末が閉じられると、プロセスに送信されます。 署名2シグナル割り込み: ユーザーがプロセスを終了するときにプロセスに送信されるシグナル (Ctrl X など)シギキル9Signal Kill: プロセスを直ちに終了し、現在の状態の保存を許可しないシグナル。 シグターム15シグナル終了: プロセスの終了を要求するシグナルを送信します。この信号はプロセスでは無視できます。ただし、プロセスが SIGTERM を受信するとリソースが解放されるため、これはプロセスを終了する方法として推奨されます。 サインストップ19 (x86、ARM およびその他のほとんどの場合) 17 (Alpha の場合) 23 (MIPS の場合) 24 (PARISC の場合)Stop シグナル: プロセスを停止しますが、後で再開するシグナル。

常用的信号 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 中国語 Web サイトの他の関連記事を参照してください。

ソース:lxlinux.net
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート