\r\n\r\n
プロセスの強制終了は、そのプロセスを取り除く唯一の方法である場合があります。厳しい名前ですが、プロセスの「強制終了」は単に「強制的に終了させる」という意味です。
ウェブブラウザなどの実行中のプログラム、デスクトップ環境に関連するバックグラウンドプロセス、Linuxのシステムサービスなどは、すべてプロセスです。
工程を2つに分けることができます。
フロント・オブ・ハウス・プロセスが劇場スタッフや俳優の表舞台とすれば、バック・オブ・ハウス・プロセスは舞台裏の「裏方」チームです。
プロセスが誤動作したり失敗すると、CPU時間を過剰に消費したり、RAMを消費したり、きつい計算ループに入って応答しなくなったりします。グラフィックアプリケーションは、マウスのクリックに反応しないことがあります。ターミナルアプリケーションは、コマンドプロンプトに戻ることができない場合があります。
プロセスを "殺す "ということは、"プロセスを強制終了させる "ということであり、プロセスが応答を拒否した場合に必要な場合があります。
Linuxでは、kill、pkill、killallコマンドで、これを行うことができます。これらのコマンドは、グラフィカルまたはコマンドライン、フォアグラウンドまたはバックグラウンドのどのタイプのプロセスでも使用することができます。
killを使用するには、終了させるプロセスのプロセスID(PID)を知っている必要があります。psコマンドを使用すると、プロセスのPIDを見つけることができます。
psに全プロセスを検索させるには、-e (all processs) オプションを使用します。パイプを通した出力が少ないことが望ましく、大きな部分を占めることになる。ps、スペース、-e、スペース、|(パイプ文字)、スペース、lessと入力し、Enterキーを押してコマンドを実行します。
ps -e | lessこれにより、以下のスクリーンショットのようなプロセスのリストが表示されます。/キーで少ない速度で前方を検索することもできますし、?キーになります。
どのプロセスに興味があるかを調べるには、psの出力をgrepでパイプし、プロセスの名前または部分的な名前を指定します。
ps -e | grep shutter終了させるプロセスのPIDを見つけたら、killコマンドの引数として渡します。先のコマンドで特定したシャッター処理を終了させるには、以下のコマンドを使用します。
kill 2099キルコマンドは、成功しても何のフィードバックもないサイレントアサシンです。
pkillコマンドは、1つまたは複数のプロセスを名前を付けて終了させることができます。プロセスをPIDで識別する必要はありません。pkillを使用するには、pkillが実行中のプロセスのリストを確認するために使用する検索語を指定します。マッチング処理を終了する。そのため、検索語のスペルが正しいかどうかを確認する必要があります。
安全策として、pkillコマンドを使う前にpgrepコマンドを使うことができます。pgrepは検索ワードも受け付けます。これは、pgrepがプロセスに終了シグナルを送らず、検索語が間違って入力された場合に他のプロセスを誤って終了させないため、安全です。pkillに渡す前に、検索語を正しく考慮したことを確認することができます。pkillとpgrepは同じように検索語を扱います。両者の処理は、マニュアルページを共有するほど類似しています。
仮に、名前に "subq "を含むプロセスがあるとする。ps-u dave | grep コマンドを使って、舞台裏を覗いてみることにします。subq "がプロセスと個々のプロセスにマッチすることがわかります。これは、全工程のフルネームがわかるようにするためです。
ps -u dave | grep subq仮に、ユーザーがこのようなことをせず、プロセス名に「subq」という部分文字列が含まれていることだけを知っているとします。pgrepを使って、検索語に一致するものが1つだけかどうかを調べている。そして、この検索語をpkillと一緒に使うのである。
pgrep subq pkill subqpkillを使用すると、複数のプロセスを一度に終了させることができます。ここでは、ユーザーがpgrepを実行して、Chromeが起動したプロセスの数を確認しています。pkillで皆殺しにするのです。そして、それらがすべて削除されたことをpgrepで確認する。
pgrep chrome pkill chrome pgrep chrome同じ名前のプロセスが複数実行されていて、それらをすべて終了させたくない場合、pgrepと-f(コマンドライン)オプションを使って、どのプロセスがどのプロセスかを識別することができます。簡単な例として、2つのPing処理があります。どちらかを殺して、もう一方を殺さないようにしたいのでしょう。それらのコマンドラインを利用して、区別することができます。コマンドライン引数のラップには、反転カンマを使用していることに注意してください。
pgrep -f "ping 192.168.4.22" pkill -f "ping 192.168.4.22"警告: SolarisおよびOpenIndianaオペレーティングシステムでは、killallコマンドはあなたに属するすべてのプロセスを終了させます。rootの場合、またはsudo killallを発行している場合は、コンピュータを再起動させます本記事の調査中、最新版のOpenIndiana Hipster 2018.10でこの挙動を確認しました。
killallコマンドは、pkillコマンドと似たような動作をしますが、1つだけ特別な違いがあります。コマンドに検索語を渡す代わりに、正確なプロセス名を提供する必要があります。
プロセス名と部分的に一致するものは提供できず、図のようにプロセス名全体を提供する必要があります。
killall shutt killall shuttery (less than) オプションは、指定された期間未満のプロセスを終了させることができます。
起動したばかりのanaという名前のプロセスを終了させ、2分以内に応答すれば古いanaのインスタンスをすべて実行し続けるには、killallに次のパラメータを使用します。
killall -y 2m anao (earlier than) オプションは、指定された期間以上実行されているプロセスを終了させることができます。このコマンドは、1日以上実行されているすべてのssh接続を終了させます: -o
killall -o 1d sshdこれらのコマンドを使用することで、誤ったプロセスを正確かつ安全に特定し、終了させることができます。
常に気を配る。まず、殺しているプロセスが本当に必要なプロセスかどうかを確認します。2つ目は、ダブルチェックです。注意深く、対象のプロセスが終了させたいプロセスであることを確認することです。納得がいったら、終了に進みます。