systemctl statusの使い方を徹底解説!Linuxサービスの状態確認を初心者向けに紹介
生徒
「Linuxを使っていると『サービス』という言葉をよく聞くのですが、今そのサービスがちゃんと動いているのか調べるにはどうすればいいですか?」
先生
「Linuxでは『systemctl status』というコマンドを使うことで、サービスの状態を詳しく確認できますよ。」
生徒
「システムの状態を見るなんて、なんだか難しそうで怖いイメージがあります。私のような初心者でも、壊さずに確認できますか?」
先生
「もちろんです!状態を確認するだけならシステムに影響はありません。まずは基本の読み方からゆっくり見ていきましょう。」
1. Linuxの「サービス」と「systemd」とは?
Linuxを操作していると、裏側でずっと動いているプログラムがあります。たとえば、ウェブサイトを表示するためのプログラムや、外部から接続を受け付けるためのプログラムなどです。これらをLinuxでは「サービス」と呼びます。
Windowsでいうところの「バックグラウンドプロセス」や、家電で例えるなら「電源が入っていていつでも使える待機状態の機能」のようなものです。自分から目に見える形で操作していなくても、パソコンが起動している間、裏で一生懸命働いてくれています。
そして、これらのサービスを一括して管理・監督しているリーダーのような仕組みを「systemd(システムディー)」といいます。現代のLinux(UbuntuやCentOS、Debianなど)の多くは、このsystemdがサービスたちの司令塔になっています。このリーダーに対して「あのサービスは今どうなってる?」と尋ねるための道具が、今回紹介するsystemctl(システムコントロール)コマンドなのです。
2. サービスの状態を確認する基本コマンド
まずは、特定のサービスが現在動いているかどうかを確認する、最も基本的で重要なコマンドを紹介します。パソコン初心者の方がまず覚えるべき魔法の言葉です。
書き方は非常にシンプルです。systemctl statusの後に、調べたいサービスの名前を入力するだけです。
systemctl status ssh
● ssh.service - OpenBSD Secure Shell server
Loaded: loaded (/lib/systemd/system/ssh.service; enabled; vendor preset: enabled)
Active: active (running) since Fri 2026-01-09 10:00:00 JST; 5h 30min ago
Main PID: 1234 (sshd)
Tasks: 1 (limit: 4915)
Memory: 5.0M
CPU: 100ms
CGroup: /system.slice/ssh.service
└─1234 sshd: /usr/sbin/sshd -D [listener] 0 of 10-100 startups
このコマンドを実行すると、画面に英語が並びますが、すべてを理解する必要はありません。まずは一番大事な「Active」という行に注目してください。ここがactive (running)となっていれば、そのサービスは元気に動いているということです。
3. 画面に表示される情報の見方(専門用語の解説)
コマンドの結果に出てきた難しい用語を、わかりやすく噛み砕いて説明します。これを理解しておくと、トラブルが起きたときでも「どこを見ればいいか」がわかります。
- Loaded(ローデッド): そのサービスの設定ファイルが正しく読み込まれているかを示します。また、その後ろにある
enabledは「パソコンを起動したときに自動でこのサービスを開始するかどうか」という設定のことです。 - Active(アクティブ): 現在の状態です。緑色の文字で表示されることが多いです。ここが
inactive (dead)となっている場合は、サービスが停止していることを意味します。 - Main PID(メインピーアイディー): PIDとは「プロセスID」の略で、Linuxがそのプログラムに割り振った背番号のようなものです。管理のために数字が振られています。
- Since(シンス): そのサービスがいつから動き始めたかという、開始時刻が表示されます。
初心者の方は、まず「Activeのところが緑色かどうか」を確認する習慣をつけましょう。それだけで、問題の半分以上は把握できるようになります。
4. 全てのサービスを一覧で表示する方法
特定の名前がわからなくても、今自分のコンピュータでどんなサービスが管理されているかをまとめて見たいときがあります。そんなときは、以下のコマンドを使います。
systemctl list-units --type=service
UNIT LOAD ACTIVE SUB DESCRIPTION
accounts-daemon.service loaded active running Accounts Service
dbus.service loaded active running D-Bus System Message Bus
getty@tty1.service loaded active running Getty on tty1
networkd-dispatcher.service loaded active running Dispatcher daemon for systemd-networkd
systemd-journald.service loaded active running Journal Service
これを実行すると、ずらっとサービスがリストアップされます。表形式になっていて、左側がサービス名、右側がその説明です。キーボードの矢印キーで上下にスクロールでき、確認が終わったらアルファベットの「q」を押すと、元の黒い画面(コマンド入力画面)に戻ることができます。この「qで終了する」という操作はLinuxでよく使うので、覚えておくと便利ですよ。
5. サービスが動いていない時の表示と対策
もしサービスが止まっている場合、画面にはどのように表示されるのでしょうか。あえて停止しているサービスを確認した例を見てみましょう。
systemctl status apache2
○ apache2.service - The Apache HTTP Server
Loaded: loaded (/lib/systemd/system/apache2.service; disabled; vendor preset: enabled)
Active: inactive (dead)
Docs: https://httpd.apache.org/docs/2.4/
このように、丸印が白抜きになり、inactive (dead)と表示されます。これは「活動していない(死んでいる)」という意味ですが、壊れているわけではなく、単に「お休み中」の状態です。もしこれを動かしたい場合は、管理者権限という強い力を使って起動命令を出す必要があります。管理者権限を使うときは、コマンドの先頭にsudo(スードゥー)をつけます。
sudo systemctl start apache2
(何も表示されなければ成功です)
Linuxの世界では、成功したときは何も言わずに黙って実行されるのが一般的です。動き出したか不安なときは、もう一度最初のstatusコマンドで確認してみましょう。
6. 失敗の原因を探る!ログの確認方法
サービスがうまく動かないとき、その理由を教えてくれるのが「ログ」です。ログとは、プログラムが記録した「日記」や「作業記録」のようなものです。systemctl statusコマンドを実行すると、実は画面の下の方に最新のログも数行表示されています。
もし、もっと長い記録をしっかり読みたい場合は、journalctl(ジャーナルコントロール)という別のコマンドを組み合わせて使います。
journalctl -u ssh.service -n 20
-- Logs begin at Wed 2026-01-01 00:00:00 JST, end at Fri 2026-01-09 15:00:00 JST. --
Jan 09 10:00:00 localhost systemd[1]: Started OpenBSD Secure Shell server.
Jan 09 12:30:00 localhost sshd[1234]: Accepted password for user from 192.168.1.1
ここで使った-uはサービスを指定するためのもので、-n 20は「最新の20行だけ見せて」というお願いです。エラーが起きているときは、ここに赤い文字で「Error」や「Failed」といった単語が出てくるので、それを手がかりにネットで検索すると解決策が見つかりやすくなります。
7. 実行中のサービスだけを絞り込むテクニック
パソコンの中には何百ものサービスがありますが、その中から「今まさに元気に動いているもの」だけを抜き出したいときは、フィルタリングを行います。Linuxにはgrep(グレップ)という、特定の文字が含まれる行だけを抜き出す便利な道具があります。
systemctl list-units --type=service --state=running
UNIT LOAD ACTIVE SUB DESCRIPTION
cron.service loaded active running Regular background program processing daemon
rsyslog.service loaded active running System Logging Service
udev.service loaded active running Device Statistics Daemon
このように、オプション(コマンドにつける付け足しの命令)を使うことで、自分の知りたい情報だけを効率よく取り出すことができます。初心者の方は、まずは基本のstatusを使いこなし、慣れてきたらこうした絞り込みにも挑戦してみましょう。Linuxの操作は、こうしたコマンドの組み合わせでどんどん便利になっていきます。
8. サービスの自動起動設定を確認する
最後に、そのサービスが「パソコンをつけたときに勝手に始まる設定になっているか」を確認する方法です。これはis-enabledというコマンドを使います。
systemctl is-enabled ssh
enabled
結果がenabledなら自動起動が有効、disabledなら無効という意味です。「設定したはずなのに、再起動したら動いていない!」というときは、ここがどうなっているか確認するのが定石です。サービスの状態確認は、単に「今」を見るだけでなく、このように「未来」の設定を見ることも含まれます。
これら一連の確認作業をマスターすれば、Linuxシステムの管理能力はぐんと向上します。最初は黒い画面に抵抗があるかもしれませんが、自分の命令でコンピュータの状態が明らかになる感覚を、ぜひ楽しんでみてください。