手当たり次第に書くんだ

飽きっぽいのは本能

Ubuntu 26.04 サービス状態確認の基本 – systemctl で active / enabled / failed を見る

関連する記事

Ubuntu 26.04 でサービスの状態を確認する時は、systemctl status だけで判断せず、現在の稼働状態、起動時の有効化、失敗 unit、ログ、依存関係を分けて見ます。activeenabled は意味が違うため、両方を確認します。

この記事では、systemd サービスの状態確認として、is-activeis-enabledstatuslist-unitsjournalctl -u、依存関係、起動失敗時の切り分けを扱います。

active と enabled の違い

  • active: 今この瞬間にサービスが動いているかを示します。
  • enabled: 次回起動時に自動起動する設定かを示します。
  • failed: 起動や実行に失敗した状態です。
  • static: 単体で enable する対象ではなく、他 unit から依存されることが多い unit です。

サービスの状態を確認する

まず対象サービスの状態を確認します。--no-pager を付けると、コマンド出力をそのまま確認しやすくなります。

systemctl status ssh.service --no-pager
systemctl is-active ssh.service
systemctl is-enabled ssh.service

失敗している unit を確認する

システム全体で失敗している unit がないかを確認します。再起動後確認や障害調査では最初に見る項目です。

systemctl --failed
systemctl list-units --state=failed

サービス一覧から探す

サービス名が分からない場合は、稼働中サービスや unit ファイル一覧から探します。

systemctl list-units --type=service
systemctl list-unit-files --type=service
systemctl list-units --type=service --all

ログを確認する

サービスが失敗している場合は、対象 unit のログを確認します。現在の起動だけを見る場合は -b を付けます。

journalctl -u ssh.service -b --no-pager
journalctl -u ssh.service -n 100 --no-pager
journalctl -u ssh.service -f

起動時のログを見る

起動時に失敗したサービスは、今回起動中のログと前回起動のログを分けて確認します。

journalctl -b -p err --no-pager
journalctl -b -1 -p err --no-pager
journalctl -b -u ssh.service --no-pager

サービスを起動・停止・再起動する

状態確認後に必要であれば、サービスを起動、停止、再起動します。設定変更後は reload で足りるのか restart が必要なのかを確認します。

sudo systemctl start ssh.service
sudo systemctl stop ssh.service
sudo systemctl restart ssh.service
sudo systemctl reload ssh.service

自動起動を設定する

再起動後も起動させたいサービスは enable します。今すぐ起動も合わせて行う場合は enable --now を使えます。

sudo systemctl enable ssh.service
sudo systemctl enable --now ssh.service
systemctl is-enabled ssh.service

unit 定義を確認する

サービスの実行コマンド、環境変数、drop-in 設定を確認するには systemctl catsystemctl show を使います。

systemctl cat ssh.service
systemctl show ssh.service -p FragmentPath -p DropInPaths -p ExecStart

依存関係を確認する

サービスが起動しない場合は、依存する unit や順序関係を確認します。ネットワーク、マウント、データベースなどの依存で失敗していることがあります。

systemctl list-dependencies ssh.service
systemctl list-dependencies --reverse ssh.service
systemctl show ssh.service -p After -p Requires -p Wants

設定変更後の確認

unit ファイルや drop-in を変更した場合は daemon-reload が必要です。サービス設定だけを変更した場合は、reload または restart が必要です。

sudo systemctl daemon-reload
sudo systemctl restart ssh.service
systemctl status ssh.service --no-pager
journalctl -u ssh.service -n 50 --no-pager

タイマーやソケットも確認する

サービスによっては timer や socket から起動されます。サービスだけを見ても原因が分からない場合は、関連 unit も確認します。

systemctl list-timers --all
systemctl list-sockets --all
systemctl status apt-daily.timer --no-pager

トラブル時に見る順番

  • systemctl --failed で失敗 unit を見る。
  • systemctl status で対象 unit の状態を見る。
  • journalctl -u で対象 unit のログを見る。
  • systemctl cat で実際の unit 定義を見る。
  • 依存関係、マウント、ネットワーク、環境変数を確認する。

確認項目

  • 対象サービスが active かどうか。
  • 再起動後も必要なサービスが enabled かどうか。
  • システム全体に failed unit が残っていないか。
  • ログに設定ファイル、権限、ポート競合、依存関係のエラーが出ていないか。
  • unit 変更後に daemon-reload を実行しているか。

まとめ

Ubuntu 26.04 のサービス状態確認では、activeenabledfailed を分けて見ることが重要です。systemctl status だけで終わらせず、journalctl -u、unit 定義、依存関係まで確認すると、起動失敗や設定反映漏れを切り分けやすくなります。

関連する記事
Ubuntu 26.04 サービス状態確認の基本 – systemctl で active / enabled / failed を見る

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)

トップへ戻る