Ubuntuでsystemdサービスの状態を確認する方法

Ubuntuでsystemdサービスの状態を確認する方法

Ubuntuではsystemdがサービス管理を担当しています。Webサーバーやデータベース、cronなどのサービスが正常に動作しているか確認する際は、systemctlコマンドを利用します。本記事では、systemdサービスの状態確認やログ確認、起動設定の確認方法を詳しく解説します。

systemdとは

systemdはLinuxの初期化システムおよびサービス管理システムです。

Ubuntuでは多くのサービスがsystemdによって管理されています。

代表例

・Apache

・Nginx

・MySQL

・MariaDB

・cron

・Docker

サービスの起動、停止、再起動、状態確認などを統一的に管理できます。

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

特定のサービスの状態を確認するには以下を実行します。

systemctl status サービス名

systemctl status nginx

実行例

● nginx.service - A high performance web server
Loaded: loaded
Active: active (running)

重要な確認ポイント

・loaded:サービス定義が読み込まれている

・active (running):正常稼働中

・inactive:停止中

・failed:異常終了

サービスが起動しているかだけ確認する

スクリプトなどで利用する場合はis-activeが便利です。

systemctl is-active nginx

結果

active

停止中の場合

inactive

異常時

failed

シンプルに状態を取得できます。

自動起動設定を確認する

OS起動時にサービスが自動起動するか確認します。

systemctl is-enabled nginx

結果例

enabled

その他の状態

・enabled

・disabled

・static

・masked

disabledの場合は自動起動しません。

すべてのサービス一覧を表示する

systemdで管理されているサービスを確認します。

実行中サービスのみ表示

systemctl list-units --type=service

すべてのサービスを表示

systemctl list-unit-files --type=service

インストール済みサービスの確認に便利です。

失敗しているサービスを確認する

異常終了しているサービスのみ表示できます。

systemctl --failed

UNIT                LOAD   ACTIVE SUB    DESCRIPTION
nginx.service       loaded failed failed Nginx Web Server

トラブルシューティング時によく利用されます。

サービスログを確認する

systemd管理サービスのログはjournalctlで確認できます。

journalctl -u nginx

最新ログのみ表示

journalctl -u nginx -n 50

リアルタイム監視

journalctl -u nginx -f

サービスエラーの調査に非常に役立ちます。

サービスを再起動する

設定変更後などは再起動が必要です。

sudo systemctl restart nginx

状態確認

systemctl status nginx

正常に再起動できたか確認します。

サービスの起動と停止

サービス起動

sudo systemctl start nginx

サービス停止

sudo systemctl stop nginx

現在の状態確認

systemctl status nginx

運用中によく使用する基本コマンドです。

サービスの自動起動を設定する

自動起動を有効化

sudo systemctl enable nginx

無効化

sudo systemctl disable nginx

設定確認

systemctl is-enabled nginx

サーバー再起動後もサービスを維持したい場合に必要です。

サービス定義ファイルを確認する

systemdの設定内容を確認します。

systemctl cat nginx

実行例

[Unit]
Description=Nginx Web Server

[Service]
ExecStart=/usr/sbin/nginx

起動コマンドや依存関係を確認できます。

まとめ

Ubuntuでsystemdサービスの状態を確認する場合は、まず「systemctl status サービス名」を実行するのが基本です。より簡潔な確認には「systemctl is-active」、自動起動設定には「systemctl is-enabled」を利用します。

また、サービスに問題が発生した場合は「systemctl –failed」や「journalctl -u サービス名」を活用することで原因調査が容易になります。日常的なサーバー運用では、これらのコマンドを覚えておくことでトラブル対応を迅速に行えるようになります。