UbuntuなどのLinux系OSには、バックグラウンドで常に動作する「サービス(デーモン)」がたくさんあります。
よくあるサービスの例:
- ウェブサーバー(nginx、apache)
- データベース(MySQL、PostgreSQL)
- SSH接続、ファイアウォール、タイマーなどのシステム管理機能
- ネットワーク接続の管理
これらのサービスは、systemd(システムディー)という仕組みで管理されています。
この記事では、Ubuntuでサービスの一覧を確認する方法や、状態の確認・操作方法まで分かりやすく説明します。
第1章:サービス一覧の確認方法(systemctlを使う)

systemctlってなに?
systemctl
は、Ubuntuに最初から入っているsystemd管理ツールです。
現在のUbuntuでは、この方法が最も推奨されています。
現在動いているサービスだけを確認
systemctl list-units --type=service
このコマンドで、現在実行中のサービスだけが一覧表示されます。
表示される状態の意味:
active (running)
:正常に実行中active (exited)
:一度実行して正常終了(タスク完了)inactive (dead)
:停止中failed
:エラーで異常終了
すべてのサービスを表示する(状態に関係なく)
systemctl list-unit-files --type=service
表示される設定の意味:
enabled
:システム起動時に自動で開始されるdisabled
:手動で起動する必要があるstatic
:他のサービスから呼び出される前提masked
:完全に無効化されている
見やすく表示する方法
systemctl list-units --type=service --all
--all
オプションを付けると、停止中のサービスも含めてすべて表示されます。
第2章:serviceコマンドでも確認可能(古い方式)
Ubuntuでは、互換性のために古いservice
コマンドも使えます。
service --status-all
このコマンドで、すべてのサービス一覧が表示されます。
出力例:
[ + ] apache2
[ - ] mysql
[ ? ] ufw
記号の意味:
記号 | 意味 |
---|---|
+ | 起動中 |
- | 停止中 |
? | 状態不明(systemd管理外) |
注意点: 新しいUbuntuではsystemctl
が推奨されており、将来的にservice
は使われなくなる可能性があります。新しく覚えるならsystemctl
がおすすめです。
第3章:特定のサービスの詳しい状態確認と操作
サービスの詳細な状態を確認
systemctl status nginx
この方法で、指定したサービスの詳細情報が表示されます:
- 現在の状態(起動中か停止中か)
- 最近のログメッセージ
- プロセスID(PID)
- メモリ使用量
サービスを操作する
サービスを起動:
sudo systemctl start nginx
サービスを停止:
sudo systemctl stop nginx
サービスを再起動:
sudo systemctl restart nginx
設定を再読み込み(サービスは止めない):
sudo systemctl reload nginx
自動起動の設定を変更
システム起動時に自動開始する:
sudo systemctl enable nginx
システム起動時に自動開始しない:
sudo systemctl disable nginx
現在の自動起動設定を確認:
systemctl is-enabled nginx
第4章:実用的なサービス確認のコツ

問題のあるサービスを素早く見つける
systemctl --failed
このコマンドで、エラーで止まってしまったサービスだけを表示できます。
起動時間が長いサービスを調べる
systemd-analyze blame
システムの起動時間が遅い原因となっているサービスを特定できます。
サービスの依存関係を確認
systemctl list-dependencies nginx
指定したサービスが依存している他のサービスを確認できます。
第5章:よく使うサービス管理コマンドまとめ
コマンド | 目的 |
---|---|
systemctl list-units --type=service | 現在動作中のサービス一覧 |
systemctl list-unit-files --type=service | すべてのサービス+自動起動設定 |
systemctl status [サービス名] | 特定サービスの詳細状態確認 |
systemctl start/stop/restart [サービス名] | サービスの開始・停止・再起動 |
systemctl enable/disable [サービス名] | 自動起動の有効・無効設定 |
systemctl --failed | 問題のあるサービスのみ表示 |
service --status-all | 互換コマンド(古い方式) |
トラブル解決の基本フロー
- 問題の発見:
systemctl --failed
でエラーサービスを確認 - 詳細確認:
systemctl status サービス名
で詳細を調査 - ログ確認:
journalctl -u サービス名
でより詳しいログを確認 - 修復作業: 設定修正後に
systemctl restart サービス名
まとめ
Ubuntuのサービス管理は、システム運用・トラブル対応・パフォーマンス調整に欠かせないスキルです。
常に把握しておきたい3つのポイント:
- 今、何が動いているのか?
- どのサービスが自動起動されるのか?
- 問題のあるサービスはどれか?
コメント