「応答しないプロセスをどうやって停止するの?」「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 | grep プロセス名:プロセスの確認とPID取得kill PID:正常終了(SIGTERM)、kill -9 PID:強制終了(最終手段)killall:名前完全一致で終了、pkill:部分一致で終了systemctl start/stop/restart:即時の起動・停止・再起動systemctl enable/disable:OS起動時の自動起動設定(即時反映ではない)journalctl -u サービス名:サービスのログ確認
関連記事
▶ ログファイルの見方と管理【journalctl/logrotate】
📋 Linux入門チートシート完全版で全コマンドを一気に復習できます。



コメント