kill の概要
`kill` コマンドは特定のプロセス ID(PID)を持つプロセスにシグナルを送信します。最も一般的なシグナルはプロセスを終了するためのシグナルですが、シグナルの種類によってプロセスは異なる反応をすることがあります。たとえば、プロセスを一時停止したり設定ファイルを再読み込みするように要求することもできます。
プロセス ID (PID) の重要性
`kill` コマンドは基本的に PID を引数として受け取ります。したがって、どのプロセスを制御したいのか正確な PID を知ることが重要です。`ps` コマンドや `top` コマンドを使用してプロセスの PID を確認することができます。
kill の主要な役割
- プロセスの終了: もはや必要ないか、誤作動しているプロセスを強制的または正常に終了します。
- プロセスの再起動/再読み込み: 特定のシグナルを送信してプロセスが設定ファイルを再読み込みまたは再起動するように誘導します。
- システムリソースの管理: 不必要に多くのリソースを消費しているプロセスを終了させることでシステムの安定性を確保します。
最も一般的に使用されるシグナル
さまざまなシグナルがありますが、次の2つが最も一般的に使用されます:
主要なシグナル
- **SIGTERM (15, デフォルト)**: プロセスに '終了せよ' という穏やかな要求を送信します。プロセスはこのシグナルを受け取ると整理作業を行い終了することができます。ほとんどの場合、このシグナルを最初に試みます。
- **SIGKILL (9)**: プロセスを即座に強制終了します。プロセスはこのシグナルを無視したり、捕捉したりすることはできず、整理作業を行う機会もなく強制的に終了されます。最終手段として使用すべきです。
主要な kill コマンドオプション
`kill` コマンドはシグナル番号またはシグナル名を使用してプロセスを制御します。特定のプロセスにシグナルを送信する際は、そのプロセスの PID を正確に指定する必要があります。
1. 基本的な使い方
2. 有用なシグナル
3. すべてのシグナル一覧を確認
生成されたコマンド:
コマンドを組み合わせてみてください。
説明:
`kill` コマンドを実行します。
これらのオプションを組み合わせて、AIと一緒に仮想的にコマンドを実行してみてください。
killall コマンド (名前でプロセスを終了)
`killall` コマンドは `kill` と異なり PID の代わりにプロセスの名前を使用して、該当する名前と一致するすべてのプロセスにシグナルを送信します。これは特定のアプリケーションのすべてのインスタンスを終了する際に非常に便利です。
名前でプロセスを正常終了
killall nginx
`nginx` という名前のすべてのプロセスに SIGTERM シグナルを送信して正常な終了を要求します。
名前でプロセスを強制終了
killall -9 firefox
`firefox` という名前のすべてのプロセスに SIGKILL シグナルを送信して即座に強制終了します。
特定のユーザーのプロセスのみ終了
killall -u $(whoami) chrome
現在のユーザーの `chrome` プロセスのみを終了します。他のユーザーの `chrome` プロセスには影響を与えません。
pkill コマンド (パターンでプロセスを終了)
`pkill` コマンドは `killall` と似ていて名前でプロセスを終了しますが、正規表現パターンを使用してプロセスを見つける点でより柔軟です。これは部分的な名前でプロセスを見つけたり、関連する複数のプロセスを一度に終了する際に便利です。
パターンでプロセスを正常終了
pkill http
名前に 'http' が含まれるすべてのプロセスに SIGTERM シグナルを送信して終了します。 (例: `httpd`, `apache2` など)
パターンでプロセスを強制終了
pkill -9 mysql
名前に 'mysql' が含まれるすべてのプロセスに SIGKILL シグナルを送信して強制終了します。
特定のユーザーに属するプロセスを終了
pkill -u www-data php-fpm
`www-data` ユーザーに属するすべての 'php-fpm' プロセスを終了します。
使用例
`kill`, `killall`, `pkill` コマンドのさまざまな活用例を通じてシステムのプロセスを効果的に管理する方法を学んでください。
特定のプロセス ID (PID) を終了
kill 12345
PID が `12345` のプロセスに SIGTERM シグナルを送信して正常な終了を試みます。
プロセスを強制終了 (PID 使用)
kill -9 54321
PID が `54321` のプロセスが応答しない場合、 `SIGKILL` シグナルで強制終了します。
Nginx プロセスを再読み込み (SIGHUP 使用)
sudo kill -1 $(cat /run/nginx.pid)
Nginx のマスタープロセス(PID)を見つけて `SIGHUP` シグナルを送信して設定ファイルを再読み込みさせます。 (Nginx プロセス PID は `ps aux | grep nginx` などで確認可能)
名前で全ての Chrome ブラウザを終了
killall chrome
実行中のすべての Chrome ブラウザプロセスを正常に終了します。 (ウィンドウが閉じて保存されていない内容は失われる可能性があります)
ユーザー 'johndoe' のすべてのプロセスを終了
sudo killall -9 -u johndoe
`johndoe` というユーザーが実行中のすべてのプロセスを強制終了します。 (管理者権限が必要)
CPU を多く使用しているプロセスを終了 (例)
# 1. top または htop で PID を確認 (例: 12345)
# 2. 該当 PID を終了
kill 12345
`top` や `htop` で CPU を多く使用しているプロセスの PID を確認した後に終了する一般的なシナリオです。