①Linux入門

プロセス管理完全ガイド【ps/kill/systemctl】

①Linux入門
記事内に広告が含まれています。

「応答しないプロセスをどうやって停止するの?」「nginxが起動しているか確認したい」そんな疑問をこの記事で解決します。

プロセスとは?

プロセスとは、実行中のプログラムのことです。Linuxでは複数のプロセスが同時に動いており、それぞれ固有のPID(プロセスID)を持ちます。

ps コマンド:プロセスを確認する

# 全プロセスを表示
$ ps aux

# 特定プロセスを検索(grepで絞り込む)
$ ps aux | grep nginx

# プロセスをツリー形式で表示
$ ps auxf

# リアルタイム監視
$ top        # 標準ツール
$ htop       # 見やすい版(要インストール: sudo apt install htop)

kill コマンド:プロセスを停止する

# PIDを指定して終了(SIGTERMがデフォルト・正常終了を要求)
$ kill 1234

# 強制終了(最終手段。プロセスは後処理不可)
$ kill -9 1234

# プロセス名で終了(完全一致)
$ killall nginx

# プロセス名で終了(部分一致)
$ pkill nginx

# PIDの調べ方
$ pgrep nginx       # PIDのみ表示
$ pidof nginx       # PIDのみ表示(別コマンド)

systemctl:サービスを管理する

systemdベースのLinux(Ubuntu 16.04以降など)では、systemctl コマンドでサービス(デーモン)を管理します。startとenableは別物です。startは今すぐ起動、enableはOS起動時の自動起動設定です。

# nginxの状態確認(Active: activeなら起動中)
$ sudo systemctl status nginx

# サービスのログを確認
$ journalctl -u nginx
$ journalctl -u nginx -f    # リアルタイムで追跡
$ journalctl -u nginx --since "1 hour ago"  # 直近1時間

ps aux 出力フィールドの読み方

フィールド意味
USER実行ユーザー
PIDプロセスID
%CPUCPU使用率
%MEMメモリ使用率
STAT状態(R=実行中、S=スリープ、Z=ゾンビ)
COMMAND実行コマンド名

killシグナル一覧

シグナル番号用途
SIGTERM15通常の終了要求(後処理あり)
SIGKILL9強制終了(後処理なし)
SIGHUP1設定ファイルのリロード

systemctlコマンド早見表

コマンド説明
systemctl start nginx起動
systemctl stop nginx停止
systemctl restart nginx再起動
systemctl enable nginx自動起動を有効化
systemctl status nginx状態確認

まとめ

  • ps aux | grep プロセス名:プロセスの確認とPID取得
  • kill PID:正常終了(SIGTERM)、kill -9 PID:強制終了(最終手段)
  • killall:名前完全一致で終了、pkill:部分一致で終了
  • systemctl start/stop/restart:即時の起動・停止・再起動
  • systemctl enable/disable:OS起動時の自動起動設定(即時反映ではない)
  • journalctl -u サービス名:サービスのログ確認

関連記事

ディスク・メモリ使用量の確認【df/du/free】

ログファイルの見方と管理【journalctl/logrotate】

📋 Linux入門チートシート完全版で全コマンドを一気に復習できます。

コメント

タイトルとURLをコピーしました