OS

Linuxでプロセスを確認して安全に終了する方法

Linuxで実行中のプロセスを確認し、対象を間違えずに安全な手順で終了する方法を、基本コマンドと注意点に絞って解説します。

この記事でわかること

  • プロセスの一覧からPIDや実行ユーザーを確認できる
  • 終了前に対象プロセスを特定し、影響範囲を確認する
  • 通常の終了要求から始め、強制終了は最後の手段にする

Linuxのプロセスとは何か

プロセスとは、Linux上で実行中のプログラムです。プロセスには、識別番号であるPID、実行ユーザー、CPU・メモリ使用量、起動コマンドなどの情報があります。終了操作ではPIDを指定するため、対象を誤ると別のアプリケーションやシステム機能に影響するおそれがあります。サービスや他の利用者への影響を確認してから操作しましょう。

実行中のプロセスを確認する

一覧を一度確認するならps、変化を監視するならtopが便利です。プロセス名からPIDを探す場合はpgrepを使えます。

BASH
# プロセス一覧を確認する
ps aux

# CPUやメモリ使用量を対話的に監視する
top

# プロセス名からPIDを探す例
pgrep -a myapp

# 期待される挙動:
# PID、実行ユーザー、使用率、実行コマンドなどを確認できる。
# 表示項目やオプションは環境のmanページで確認する。
目的コマンド特徴
一覧を一度に確認するpsその時点のプロセス情報を表示する
変化を監視するtopCPUやメモリ使用量などを更新表示する
名前から探すpgrep条件に一致するPIDを表示する
プロセス確認コマンドの使い分け

終了するプロセスを間違えずに特定する

プロセス名だけで判断せず、PID、実行ユーザー、起動コマンドを組み合わせて確認します。同じ名前のプロセスが複数ある場合は、対象のPIDを慎重に絞り込みます。

システムプロセスや他の利用者のプロセスは、影響範囲を確認せずに終了しないでください。本番環境では、プロセスを直接終了する前に、サービス管理ツールや運用手順を確認することが重要です。

プロセスを通常の手順で終了する

通常はkillで対象PIDへ終了要求を送ります。PID_TO_STOPは、実際に確認したPIDへ置き換えてください。

BASH
# PID_TO_STOPを実際の対象PIDに置き換える
kill PID_TO_STOP

# 終了したかを再確認する
ps -p PID_TO_STOP

# 期待される挙動:
# killの既定シグナルはTERMです。
# 対象が終了した場合、再確認時にプロセス情報が表示されないことがあります。
# 実際の表示や権限要件は環境のman killで確認する。

権限エラーになる場合は、対象プロセスの所有者と、自分のユーザーに必要な権限があるかを確認します。管理者権限が必要な場合でも、対象PIDを再確認してから実行してください。

終了しない場合に強制終了を検討する

通常の終了要求で終了しない場合に限り、強制終了を検討します。強制終了では、アプリケーションが終了処理を行う機会が限られるため、未保存データや一時ファイルに影響する可能性があります。

BASH
# 通常終了で終了しない場合だけ、対象PIDを再確認して実行する
kill -KILL PID_TO_STOP

# 関連プロセスやサービスの状態を確認する
ps aux | grep '[m]yapp'

# 期待される挙動:
# 対象プロセスへKILLシグナルを送る。
# 実行後は、関連プロセス、ログ、サービスの状態を確認する。
観点通常終了強制終了
終了処理の機会アプリケーションが処理できる可能性がある終了処理を期待できない
データへの影響比較的小さいが、アプリケーション次第未保存データや一時ファイルに影響する可能性がある
使う場面最初に試す通常終了で終了しない場合に限定する
通常終了と強制終了の違い

プロセスを終了できないときの確認事項

  • PIDが変わっていないか、対象プロセスがすでに終了していないかを再確認する。
  • 権限エラーの場合は、プロセスの所有者と管理者権限の要否を確認する。
  • 終了後に再び起動する場合は、サービス管理ツールや監視ツールによる自動再起動を確認する。
  • 親プロセスと子プロセスの関係を確認し、関連サービスへの影響を把握する。

参考