Linuxを運用していると、こんなことを知りたくなりませんか?
「今動いているサービスは何?」
「自動起動しているサービスを調べたい」
「サーバーが重いけど、どのサービスが原因?」
「トラブル時に不要なサービスを止めたい」
Linuxでは、バックグラウンドで多くの「サービス」が動いています。
これらのサービスを把握することは、サーバーの安定運用やトラブルシューティングにとても重要です。
この記事では、Linuxでサービスの一覧を確認する方法を、systemd対応のモダンなディストリビューション(Fedora、Ubuntu、CentOS 7以降など)から、古いSysVinit環境まで幅広く紹介します。
「サービス」って何か分からない方でも大丈夫。一つひとつ分かりやすく解説していきます。
サービスって何?なぜ一覧を確認するの?

サービスとは
「サービス」とは、Linuxが起動すると自動的に立ち上がり、バックグラウンドで動き続けるプログラムのことです。
「デーモン」とも呼ばれます。
サービスの例:
- Apache・Nginx:Webサーバー
- MySQL・PostgreSQL:データベース
- SSH:リモートログイン
- firewalld:ファイアウォール
- NetworkManager:ネットワーク管理
サービス一覧を確認する目的
目的 | 詳細 |
---|---|
サーバーの状態確認 | 必要なサービスが正常に動作しているか確認 |
セキュリティ強化 | 不要なサービスを無効化してリスクを減らす |
パフォーマンス向上 | 重いサービスを特定して最適化 |
トラブルシューティング | 問題の原因となるサービスを特定 |
自動化の準備 | 起動・停止の自動化スクリプトを作成 |
これらの目的のために、まずは「どんなサービスが動いているか」を知ることから始めましょう。
【systemd対応環境】サービス一覧の確認方法
現在のLinuxディストリビューションの多くはsystemd
というシステム管理ツールを使っています。
systemd対応のディストリビューション:
- Ubuntu 16.04以降
- CentOS 7以降
- Fedora(全バージョン)
- RHEL 7以降
- Debian 8以降
使用するコマンド:systemctl
systemdではsystemctl
コマンドを使ってサービスを管理します。
実行中のサービスを確認する
systemctl list-units --type=service
このコマンドで、現在アクティブ(起動中)なサービス一覧が表示されます。
出力例:
UNIT LOAD ACTIVE SUB DESCRIPTION
ssh.service loaded active running OpenBSD Secure Shell server
NetworkManager.service loaded active running Network Manager
firewalld.service loaded active running firewalld - dynamic firewall daemon
各項目の意味:
- UNIT:サービス名
- LOAD:設定ファイルが読み込まれているか
- ACTIVE:サービスの状態(active=動作中、inactive=停止)
- SUB:詳細な状態(running=実行中、exited=終了)
- DESCRIPTION:サービスの説明
すべてのサービス(有効・無効含む)を表示
systemctl list-unit-files --type=service
このコマンドで、システムにインストールされているすべてのサービスと、それらが自動起動設定されているかどうかが分かります。
出力例:
UNIT FILE STATE
ssh.service enabled
apache2.service disabled
mysql.service enabled
bluetooth.service disabled
STATEの意味:
- enabled:システム起動時に自動で起動
- disabled:手動で起動する必要がある
- static:他のサービスに依存して起動
- masked:完全に無効化されている
3. 特定のサービスの詳細状態を確認
systemctl status サービス名
例:
systemctl status sshd
このコマンドで、サービスの詳細情報、最近のログ、稼働状況を確認できます。
サービスの状態別一覧を絞り込む方法

目的に応じて、表示するサービスを絞り込むことができます。
目的 | コマンド例 | 使用場面 |
---|---|---|
起動中のサービスのみ | systemctl list-units --type=service --state=running | 現在動いているものだけ知りたい |
自動起動設定されたサービス | systemctl list-unit-files --type=service --state=enabled | 起動時に立ち上がるものを確認 |
無効になっているサービス | systemctl list-unit-files --type=service --state=disabled | 使っていないサービスを確認 |
エラー状態のサービス | systemctl list-units --type=service --state=failed | 問題のあるサービスを特定 |
これらのコマンドを使い分けることで、効率よく必要な情報を得ることができます。
【旧式環境(SysVinit)】での確認方法
古いLinuxディストリビューション(CentOS 6以前、Ubuntu 14.04以前など)では、SysVinitという古いシステム管理方式を使っています。
起動中のサービスを確認
service --status-all
出力例:
[ + ] apache2
[ - ] bluetooth
[ + ] ssh
記号の意味:
- [ + ]:起動中
- [ – ]:停止中
- [ ? ]:状態不明
個別のサービス状態確認
service サービス名 status
例:
service apache2 status
自動起動サービスの確認
chkconfig --list
このコマンドで、各ランレベルごとの起動設定が表示されます。
出力例:
apache2 0:off 1:off 2:on 3:on 4:on 5:on 6:off
ssh 0:off 1:off 2:on 3:on 4:on 5:on 6:off
ランレベルの意味:
- 0:システム停止
- 1:シングルユーザーモード
- 2-5:マルチユーザーモード
- 6:再起動
通常は、ランレベル2-5で「on」になっているサービスが自動起動されます。
実用的な使い方の例

Web サーバーが起動しているかチェック
# CentOS系の場合
systemctl status httpd
# Ubuntu系の場合
systemctl status apache2
不要なサービスを見つけて無効化
# 無効になっているサービスを確認
systemctl list-unit-files --type=service --state=disabled
# 特定のサービスを停止して無効化
sudo systemctl stop bluetooth
sudo systemctl disable bluetooth
エラーが出ているサービスを調査
# エラー状態のサービスを表示
systemctl list-units --type=service --state=failed
# 詳細なログを確認
journalctl -u サービス名
よくある質問

Q1. UbuntuとCentOSでコマンドは同じですか?
A. どちらもsystemd
採用後(Ubuntu 16.04以降、CentOS 7以降)はsystemctl
が標準です。ただし、サービス名が異なる場合があります:
- Webサーバー:CentOSは
httpd
、Ubuntuはapache2
- SSH:CentOSは
sshd
、Ubuntuはssh
Q2. サービス名が分からない場合はどうすればいい?
A. 以下の方法で探せます:
# キーワードで検索
systemctl list-unit-files --type=service | grep web
systemctl list-unit-files --type=service | grep sql
Q3. 一時的にサービスを止めて、再起動後も停止させたい
A. 以下の手順で行います:
# 今すぐ停止
sudo systemctl stop サービス名
# 自動起動も無効化
sudo systemctl disable サービス名
Q4. 間違ってサービスを止めてしまった場合は?
A. 以下で再開できます:
# 今すぐ起動
sudo systemctl start サービス名
# 自動起動も有効化
sudo systemctl enable サービス名
Q5. 自分のLinuxがsystemdかSysVinitか分からない
A. 以下のコマンドで確認できます:
# systemdの場合、バージョンが表示される
systemctl --version
# 古いシステムの場合、エラーが出る
まとめ
Linuxでは、サービスの管理と確認がシステム安定性とセキュリティの鍵になります。
特にsystemctl
は強力な管理ツールであり、一覧の確認から起動・停止・ログ確認まで一括で操作可能です。
この記事の重要なポイント:
systemctl list-units
:実行中のサービス確認systemctl list-unit-files
:有効・無効の状態を一覧表示- 状態別の絞り込みで効率よく情報収集
service
、chkconfig
は旧システム向け- 状態確認・無効化でサーバーを安全に運用
コメント