技術ノート Linux Linux ターミナルからプロセスを強制終了する方法

Linux ターミナルからプロセスを強制終了する方法

Linux ターミナルからプロセスを強制終了する方法

重要なポイント

  • プロセスの強制終了は単にプロセスを強制的に終了することを意味し、プロセスが応答しなくなったり不正な動作をしたりする場合に必要になることがあります。
  • Linux と macOS には、PID または名前でプロセスを終了できる kill、pkill、killall などのコマンドがあります。
  • プロセスを強制終了するときは注意し、意図しない結果を避けるために正しいプロセスを終了していることを確認することが重要です。

プロセスを削除する唯一の方法がプロセスを強制終了することである場合があります。厳しい名前にもかかわらず、プロセスを「強制終了」することは、単に「プロセスを強制的に終了する」ことを意味します。 Linux または macOS コマンドラインからこれを行う方法は次のとおりです。

プロセスとは何ですか?

Web ブラウザなどの実行中のプログラム、デスクトップ環境に関連付けられたバックグラウンド プロセス、Linux システム サービスはすべてプロセスです。

プロセスを 2 つのグループに分類できます。

  • フォアグラウンド プロセス は、ユーザーによって開始または起動されたプロセスです。これらは端末ウィンドウ内にある場合もあれば、グラフィカル アプリケーションである場合もあります。
  • バックグラウンド プロセスは 、自動的に開始され、ユーザーとの対話を行わないすべてのプロセスです。ユーザーからの入力を期待したり、結果や出力をユーザーに提示したりすることはありません。バックグラウンドプロセスはサービスやデーモンのようなものです。

前景プロセスが劇場のスタッフと俳優の表側のプロセスである場合、バックグラウンドプロセスは舞台裏の「舞台裏」チームです。

プロセスが誤動作したり誤動作したりすると、CPU 時間を過剰に消費したり、RAM を消費したり、タイトな計算ループに入って応答しなくなる可能性があります。グラフィカル アプリケーションはマウスのクリックに応答しない場合があります。ターミナル アプリケーションはコマンド プロンプトに戻らない場合があります。

Linux ターミナルからプロセスを強制終了する方法

プロセスを強制終了すると何が行われるのでしょうか?

プロセスを「強制終了」することは、単に「プロセスを強制的に終了する」ことを意味します。これは、プロセスが応答を拒否している場合に必要になる場合があります。

Linux には、まさにそれを実行できる kill pkill 、および killall コマンドが用意されています。これらのコマンドは、グラフィカルまたはコマンド ライン、フォアグラウンドまたはバックグラウンドなど、あらゆる種類のプロセスで使用できます。

Linux ターミナルからプロセスを強制終了する方法

キルコマンド

kill 使用するには、終了するプロセスのプロセス ID (PID) を知っている必要があります。 ps コマンドを使用して、プロセスの PID を見つけることができます。

ps にすべてのプロセスを検索させるには、 -e (すべてのプロセス) オプションを使用します。出力のパイプは less ことをお勧めしますが、かなりの量が存在することになります。 ps 、スペース、 -e 、スペース、 | と入力します。 (パイプ文字)、もう 1 つのスペースを入力してから、 less と入力します。 Enter を押してコマンドを実行します。

 ps -e |少ない

これにより、以下のスクリーンショットのようなプロセスのリストが表示されます。 / キーを使用すると less で前方検索でき、 ? キーを使用すると後方検索できます。鍵。

関心のあるプロセスを特定するには、 ps からの出力を grep にパイプし、プロセスの名前 (または名前の一部) を指定します。

 ps -e | grepシャッター

終了したいプロセスの PID を見つけたら、それをパラメータとして kill コマンドに渡します。前のコマンドで特定された shutter プロセスを終了するには、次のコマンドを使用します。

 2099を殺す

kill コマンドは沈黙の暗殺者です。成功してもフィードバックはありません。

macOS 上のプロセスを強制終了する 場合も同様に機能します。

Linux ターミナルからプロセスを強制終了する方法

pkill コマンド

pkill コマンドを使用すると、名前を指定してプロセス (複数可) を強制終了できます。 PID でプロセスを識別する必要はありません。 pkill を使用するには、 pkill 実行中のプロセスのリストと照合するために使用する検索語を指定します。マッチング処理が終了します。したがって、検索語のスペルが正しいことを確信する必要があります。

セーフティ ネットとして、 pkill コマンドを使用する前に pgrep コマンドを使用できます。 pgrep コマンドは検索語も受け入れます。検索用語に一致する各プロセスの PID がリストされます。 pgrep プロセスに強制終了シグナルを発行しないため、また、検索語を間違って入力した場合でも、誤って別のプロセスを強制終了することがないため、これは安全です。検索語を pkill に渡す前に、検索語が正しく考えられていることを確認できます。 pkill pgrep どちらも検索語を同じように扱います。これらの処理は非常に似ているため、 同じマニュアル ページを共有します

名前に「subq」を含むプロセスがあるとします。 ps -u dave | grep 使用します。カーテンの後ろを覗くには ps -u dave | grep コマンドを使用します。 「subq」がそのプロセスとそのプロセスのみに一致することがわかります。これは、プロセスの完全な名前を確認できるようにするためだけです。

 ps -u デイブ | grep サブク

ユーザーがそれを行っていないと仮定しましょう。彼らが知っているのは、プロセス名に部分文字列「subq」が含まれていることだけです。 pgrep を使用して、検索語に一致するものが 1 つだけであることを確認します。次に、その検索語を pkill とともに使用します。

 pgrep サブク

pkill サブク

pkill を使用すると、複数のプロセスを一度に強制終了できます。ここでユーザーは pgrep を実行して、Chrome が起動したプロセスの数を確認します。彼らは pkill を使って全員を殺します。次に、それらがすべて削除されたことを pgrep で確認します。

 pgrepクロム

pkillクロム

pgrepクロム

同じ名前の複数のプロセスが実行されているが、すべてを強制終了したくない場合は、 -f (コマンド ライン) オプションを指定して pgrep を使用すると、どのプロセスがどれであるかを識別できます。簡単な例としては、2 つの ping プロセスが挙げられます。どちらかを殺したいが、もう一方は殺したくない。コマンド ラインを使用してそれらを区別できます。コマンドラインパラメータを囲むために引用符を使用していることに注意してください。

 pgrep -f "ping 192.168.4.22"

 pkill -f "ping 192.168.4.22" 

Linux ターミナルからプロセスを強制終了する方法

killall コマンド

警告 : Solaris および OpenIndiana オペレーティング システムでは、 killall コマンドは、自分に属するすべてのプロセスを強制終了します。 root である場合、または sudo killall を発行している場合は、コンピュータを再起動します。この記事の調査中に、この動作は OpenIndiana Hipster 2018.10 の最新バージョンで確認されました。

killall コマンドは pkill コマンドと 同様に動作します が、特定の違いがあります。検索語をコマンドに渡す代わりに、正確なプロセス名を指定する必要があります。

プロセス名に部分一致を指定することはできません。次に示すように、プロセス名全体を指定する必要があります。

キオールシャット

キオールシャッター

-y (より若い) オプションを使用すると、指定した期間未満実行されているプロセスを強制終了できます。期間は数値で指定され、その後に次のいずれかの単位が続きます。

  • s(秒)
  • m(分)
  • h(時間)
  • d (日)
  • w(週)
  • M (月、音符、大文字の「M」)
  • y (年)

起動したばかりの ana というプロセスを強制終了し、 ana の古いインスタンスを実行したままにするには、2 分以内に反応した場合は、 killall で次のパラメータを使用できます。

 killall -y 2m アナ

-o (より古い) オプションを使用すると、指定した期間を超えて実行されているプロセスを強制終了できます。このコマンドは、1 日以上実行されているすべての ssh 接続を強制終了します。

 killall -o 1d sshd 

Linux ターミナルからプロセスを強制終了する方法

任意のプロセスを強制終了できますか?

これらのコマンドを使用すると、誤ったプロセスを正確かつ安全に特定し、正しく終了できます。ただし、トリガー ハッピーになり すぎ て、終了すべきではないプロセスを終了してしまう可能性は十分にあります。

常に注意してください。まず、強制終了しようとしているプロセスが本当に必要なものであることを確認してください。次に、再確認します。注意深く、対象のプロセスが終了したいプロセスであることを確認してください。満足したら、プロセスの終了に進みます。

プロセスを誤って終了してしまったら、それで終わりではありません。最も可能性の高い結果は、何かバグが発生して PC を再起動しなければならないことです。そうしないと、終了したプロセスに関連付けられたプログラムで行った作業が失われる可能性があります。

Linuxコマンド

ファイル

tar pv cat tac chmod grep diff sed ar man pushd popd fsck testdisk seq fd pandoc cd $PATH awk join jq fold uniq journalctl · tail · stat · ls · fstab · echo · less · chgrp · chown · rev · look · strings · type · rename · zip · unzip · mount · umount · install · fdisk · mkfs · rm · rmdir · rsync · df · gpg · vi · nano · mkdir · du · ln · パッチ · 変換 · rclone · シュレッド · srm · scp · gzip · chattr · カット · 検索 · umask · wc · tr

プロセス

エイリアス · スクリーン · トップ · ナイス · renice · 進行状況 · strace · systemd · tmux · chsh · 履歴 · at · バッチ · フリー · what · dmesg · chfn · usermod · ps · chroot · xargs · tty · pinky · lsof · vmstat · タイムアウト · ウォール · はい · キル · スリープ · sudo · su · タイム · groupadd · usermod · グループ · lshw · シャットダウン · 再起動 · 停止 · パワーオフ · パスワード · lscpu · crontab · 日付 · bg · fg · pidof · nohup · pmap

ネットワーキング

netstat ping ip ss whois fail2ban bmon dig finger nmap ftp curl wget who whoami w iptables ssh-keygen ufw arping firewalld

「 Linux ターミナルからプロセスを強制終了する方法」に関するベスト動画選定!

【これは凄い!】メモリが足らないPCを快適にする裏技2選【仮想メモリとメモリ開放でこんなに快適に!】Microsoft pc manager
Linuxでプロセスを強制終了する方法