「応答しないプロセスをどうやって停止するの?」「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 |
| %CPU | CPU使用率 |
| %MEM | メモリ使用率 |
| STAT | 状態(R=実行中、S=スリープ、Z=ゾンビ) |
| COMMAND | 実行コマンド名 |
killシグナル一覧
| シグナル | 番号 | 用途 |
|---|---|---|
| SIGTERM | 15 | 通常の終了要求(後処理あり) |
| SIGKILL | 9 | 強制終了(後処理なし) |
| SIGHUP | 1 | 設定ファイルのリロード |
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 サービス名:サービスのログ確認
関連記事
▶ ログファイルの見方と管理【journalctl/logrotate】
📋 Linux入門チートシート完全版で全コマンドを一気に復習できます。



コメント