【完全ガイド】Ubuntuでサービス一覧を確認する方法|systemctl・serviceコマンドの使い方

Linux

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互換コマンド(古い方式)

トラブル解決の基本フロー

  1. 問題の発見: systemctl --failedでエラーサービスを確認
  2. 詳細確認: systemctl status サービス名で詳細を調査
  3. ログ確認: journalctl -u サービス名でより詳しいログを確認
  4. 修復作業: 設定修正後にsystemctl restart サービス名

まとめ

Ubuntuのサービス管理は、システム運用・トラブル対応・パフォーマンス調整に欠かせないスキルです。

常に把握しておきたい3つのポイント:

  • 今、何が動いているのか?
  • どのサービスが自動起動されるのか?
  • 問題のあるサービスはどれか?

コメント

タイトルとURLをコピーしました