LINUX SERVER GUIDE 目的別ガイド

systemctlとjournalctlの使い方|Linuxサービスの状態・自動起動・ログを確認する

systemdsystemctljournalctlApache

AlmaLinux 9のApacheを例に、systemctlのactiveとenabled、statusの読み方、journalctlでのログ確認を学びます。start・restart・reloadを使い分け、最後はHTTPステータスコードとページ本文で動作を確かめます。

学習ガイドの目次 目的別ガイド
  1. 01自分のPCを準備する目安:45分
  2. 02Linuxをインストールする目安:60分
  3. 03WindowsからSSHで接続目安:25分
  4. 04Apacheでページを表示目安:30分

目的別ガイド

この記事のゴール

Apacheの現在の状態と自動起動の設定を区別し、ログとHTTP応答から動作を確認できる。

対象:第4回「Apacheでページを表示」と同じ構成で実習している方。

この記事の目次

学習用のLinuxへSSHで接続する

このガイドでは、第4回「Apacheでページを表示」まで進めた学習用の仮想マシンを使います。Intel/AMDの64ビットCPU(x86_64)を搭載したWindows 11 PCでVirtualBoxを動かし、AlmaLinux 9にApacheと自作ページを用意してあることが前提です。

サービスの起動・再起動や設定変更を試す対象は、この学習用の仮想マシンです。第4回のNAT設定(SSHは2222→22、HTTPは8080→80)を使い、ホストIPは 127.0.0.1、SELinuxとfirewalldは有効な状態を保ちます。

仮想マシンが停止中なら、VirtualBoxで起動し、Linuxのログイン画面が出るまで待ちます。次のコマンドはSSHに接続していないWindowsのPowerShellで実行します。既に接続中なら、そのLinuxの画面を使って進めてください。

入力Windowsから学習用のLinuxへ接続
実行場所
Windows(PowerShell)
アカウント
現在のWindowsユーザー
権限
通常
ssh -p 2222 labuser@127.0.0.1

labuser のLinux用パスワードを入力します。入力中は文字が表示されません。初回の接続先確認や接続エラーは、第3回のSSH接続手順を確認してください。接続後、操作対象を確かめます。

入力接続後のユーザーとホスト名を確認
実行場所
Linux(SSHで接続中)
アカウント
labuser
権限
通常
作業ディレクトリ
~
whoami
hostname
この実習環境での表示例 入力不要
labuser
linux-lab

ここからのLinuxコマンドは、SSH接続後の labuser で実行します。ユーザーやホスト名が異なる場合は、操作対象を確認してから進めましょう。

statusで、サービスの現在の状態を読む

systemdは、Linuxの起動処理やサービスを管理する仕組みです。Apacheのようなサービスの状態を調べたり、動作を切り替えたりするコマンドが systemctl です。Apacheは httpd.service という名前で管理され、以下では省略形の httpd を使います。

入力Apacheの状態を一覧で確認
実行場所
Linux(SSHで接続中)
アカウント
labuser
権限
通常
作業ディレクトリ
~
systemctl status httpd --no-pager --full
起動中の表示例(抜粋) 入力不要
Loaded: loaded (/usr/lib/systemd/system/httpd.service; enabled; preset: disabled)
Active: active (running) since …
Main PID: 1234 (httpd)
見る場所読み取ること
Loaded: loadedユニットファイルを読み込めている状態。ユニットファイルは、systemdがサービスの起動方法などを読み取る設定ファイルです。
Active: active (running)このApacheサービスが現在動作中。inactive (dead) なら停止中、failed なら起動・動作などで失敗した状態です。
Main PID主となるプロセスの番号。起動し直すと変わることがあります。

--no-pager は、ページ送り用の閲覧画面を使わず、そのまま表示する指定です。--full は長い行の省略を防ぎます。Unit httpd.service could not be found. と出る場合は、接続先と第4回のApache導入手順を確認してください。

active でも、目的のWebページを取得できるとは限りません。最後にHTTP応答も確認します。

activeとenabledを分けて確認する

activeは現在の動作状態、enabledは自動起動の設定です。それぞれを短く表示するコマンドで確認しましょう。

入力Apacheが今動いているかを確認
実行場所
Linux(SSHで接続中)
アカウント
labuser
権限
通常
作業ディレクトリ
~
systemctl is-active httpd
動作中の表示例 入力不要
active
入力Apacheの自動起動の設定を確認
実行場所
Linux(SSHで接続中)
アカウント
labuser
権限
通常
作業ディレクトリ
~
systemctl is-enabled httpd
自動起動を設定済みの表示例 入力不要
enabled
現在の状態自動起動の設定このApacheでの意味
activeenabled今は動作中で、次のLinux起動時も自動起動の対象。
activedisabled今は動作中だが、自動起動は設定していない。
inactiveenabled今は停止中だが、自動起動は設定してある。
inactivedisabled今は停止中で、自動起動も設定していない。

enabled でも、設定エラーなどがあれば起動に失敗します。また、disabled は手動起動を禁止する設定ではありません。status の Loaded 行では、enabled と preset: disabled が並ぶ場合があります。preset は配布元の標準方針で、現在の設定はその前の enabled を見ます。

第4回の設定を引き継いでいれば enabled です。disabledになっていて、自動起動を設定したい場合だけ、次を実行します。

入力必要な場合だけ、Apacheの自動起動を設定
実行場所
Linux(SSHで接続中)
アカウント
labuser
権限
sudo
作業ディレクトリ
~
sudo systemctl enable httpd

enable だけでは、停止中のサービスはその場で起動しません。実行した場合は is-enabled で確認します。第4回の enable --now は、自動起動の設定と、その場での起動をまとめた指定でした。RHEL 9公式:サービスの状態と自動起動

journalctlで、Apacheに関係する最近のログを読む

ログは、起動・停止・エラーなどの出来事を記録したものです。journalctl は、systemdのジャーナルという仕組みに集められたログを読むコマンドです。システム側のログも確認できるよう、ここでは sudo を使います。

入力Apacheに関係する直近30件のログを確認
実行場所
Linux(SSHで接続中)
アカウント
labuser
権限
sudo
作業ディレクトリ
~
sudo journalctl -u httpd -n 30 --no-pager
指定意味
-u httpdApacheのサービスに関係するログへ絞る。
-n 30直近30件を表示する。必要な時刻まで戻れなければ、30を100などへ増やす。
--no-pager閲覧画面を開かず、コマンドの結果として表示する。
起動に関係するログの表示例(抜粋) 入力不要
Nov 07 10:00:00 linux-lab systemd[1]: Starting The Apache HTTP Server...
Nov 07 10:00:01 linux-lab systemd[1]: Started The Apache HTTP Server.

この指定では、表示範囲の中で新しい記録が下に並びます。左から日時・ホスト名・記録したプログラム・メッセージを読み、まず自分が操作した時刻の前後を探します。昔のエラーと、直近の操作の結果を混同しないようにしましょう。

failed が出たときは、その前後にある設定ファイル名・行番号・エラーの内容まで確認します。末尾の「失敗した」という行だけでは、原因が分からないことがあります。-- No entries -- なら、表示条件と保存されているログの範囲も確認し、正常だったとは決めつけません。

必要な場合だけ、start・restart・reloadを選ぶ

正常に動作していて設定も変えていなければ、この節の操作は不要です。操作が必要な場合は、目的に合うものを1つ選び、結果を確認してから次へ進みます。

まずApacheの設定ファイルを確認します。httpd -t は、設定の書き方に誤りがないかを調べる構文チェックです。

入力起動や設定反映の前に、Apacheの構文を確認
実行場所
Linux(SSHで接続中)
アカウント
labuser
権限
sudo
作業ディレクトリ
~
sudo httpd -t
構文エラーがないときの表示例 入力不要
Syntax OK

警告が一緒に出る場合は、その内容も読みます。構文エラーがある場合はファイル名や行番号を手がかりに修正し、再確認してから進めます。Syntax OK は構文の確認結果で、Webページの配信まで保証するものではありません。

停止中のApacheを動かす:start

動かしたいApacheが inactive の場合に使います。failed なら、先にログで原因を調べ、対処してから起動します。

入力必要な場合だけ、停止中のApacheを起動
実行場所
Linux(SSHで接続中)
アカウント
labuser
権限
sudo
作業ディレクトリ
~
sudo systemctl start httpd

Apacheを停止して起動し直す:restart

再起動が必要な変更を反映するときなどに使います。再起動中は、処理中の接続が切れることがあります。試す場合は、この学習用Apacheで行います。停止中に実行した場合は起動します。

入力必要な場合だけ、Apacheを再起動
実行場所
Linux(SSHで接続中)
アカウント
labuser
権限
sudo
作業ディレクトリ
~
sudo systemctl restart httpd

動作中のApacheに設定を読み直させる:reload

設定ファイルを変更し、再読み込みで反映できる場合に使います。reload は、その機能に対応したサービスで使える操作です。停止中のApacheを動かす場合は start を選びます。

入力必要な場合だけ、Apacheの設定を再読み込み
実行場所
Linux(SSHで接続中)
アカウント
labuser
権限
sudo
作業ディレクトリ
~
sudo systemctl reload httpd

第4回の index.html の本文を書き換えただけなら、通常は reload や restart は不要です。また、daemon-reload はsystemdのユニットファイルの変更を読み直す別の操作で、Apacheの設定を反映する reload とは区別します。

操作後は、上の status と journalctl のコマンドを再実行し、現在の状態と直近の記録を確認します。何も表示されず入力待ちへ戻る操作もあるため、エラーの有無だけで判断しません。

確認した公式資料:systemctlの各操作、Apacheの構文チェック

最後に、HTTPステータスコードとページ本文を確認する

サービスが起動していることに加え、目的のページを返せることまで確かめます。まずSSH接続中のLinuxから、Linux自身のApacheへ接続します。

入力Linux自身からHTTP応答を確認
実行場所
Linux(SSHで接続中)
アカウント
labuser
権限
通常
作業ディレクトリ
~
curl -i --noproxy 127.0.0.1 http://127.0.0.1/
成功時に確認する部分の例(抜粋) 入力不要
HTTP/1.1 200 OK
…
<h1>Linux Lab is working.</h1>

-i はHTTPステータスコードや応答ヘッダーを本文と一緒に表示する指定です。--noproxy 127.0.0.1 は、この接続先でプロキシサーバーを使わない指定です。Linuxの127.0.0.1へHTTPで接続し、ポート番号を省略しているので80番ポートを使います。

200 OKと、作成した本文の両方を確認します。200でも別のページが返る場合や、403・404が返る場合は、目的を達成できていません。

続いて、WindowsのPowerShellを別のタブかウィンドウで開き、Windowsからの接続経路も確かめます。次のコマンドを、SSH接続中のLinuxへ入力しないようにしてください。

入力WindowsからもHTTP応答を確認
実行場所
Windows(PowerShell)
アカウント
現在のWindowsユーザー
権限
通常
curl.exe -i --noproxy 127.0.0.1 http://127.0.0.1:8080/

こちらはWindowsの127.0.0.1:8080から、VirtualBoxを経由してLinuxの80番ポートへ接続します。Windowsでは curl.exe と指定し、同じ200 OKと本文が返ることを確認します。

Linuxから成功しWindowsから失敗する場合は、サービスの再起動を繰り返さず、第4回の接続経路の確認へ進みます。ポート転送やfirewalldの設定を調べる必要があるためです。

  • activeとenabledが、それぞれ何を確認しているか説明できる
  • Apacheに関係する直近のログから、操作した時刻の記録を探せる
  • start・restart・reloadを、目的に応じて選べる
  • LinuxとWindowsの両方から、200 OKと自作ページの本文を確認できた

できたことを確認

  • httpdの現在の状態と自動起動の設定を別々に確認できる
  • journalctlでhttpdに関係する直近30件を確認できる
  • 必要な操作の後に状態・ログ・HTTP応答を確認できる

参考資料・対象環境

この教材の対象と確認状況

Windows 11(Intel / AMDの64bit PC)、VirtualBox 7.2系、AlmaLinux 9系を対象にしています。2026年11月8日時点の公式資料を確認して作成しています。画面名はバージョンや表示言語で異なる場合があります。

掲載した出力は読み方を示す表示例です。この版はWindows実機で全手順を通した動作確認は未実施です。研修で使用する前に、ご利用のPC環境で事前確認をお願いします。

AZWorkが独自に構成した実習ガイドです。体系的に学ぶ参考資料として、LPI-JapanのLinuxサーバー構築標準教科書もご覧ください。