Advanced Ubuntu Administration and Management Best Practices
Ubuntu Server の運用項目を体系的に確認したい場合の参考書籍です。価格や在庫はリンク先で確認してください。
Amazon で見るこのリンクは Amazon アソシエイトリンクです。
Ubuntu 26.04 でサービスの状態を確認する時は、systemctl status だけで判断せず、現在の稼働状態、起動時の有効化、失敗 unit、ログ、依存関係を分けて見ます。active と enabled は意味が違うため、両方を確認します。
この記事では、systemd サービスの状態確認として、is-active、is-enabled、status、list-units、journalctl -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.serviceunit 定義を確認する
サービスの実行コマンド、環境変数、drop-in 設定を確認するには systemctl cat と systemctl 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 のサービス状態確認では、active、enabled、failed を分けて見ることが重要です。systemctl status だけで終わらせず、journalctl -u、unit 定義、依存関係まで確認すると、起動失敗や設定反映漏れを切り分けやすくなります。

