採用情報|SKサービス株式会社

インフラ入門 約5分で読めます

systemdとは?Linuxのサービス管理を理解しよう

「systemctl restart nginx って何をしてるの?」「サービスの起動・停止ってどうやるの?」

Linuxサーバーを触っていると、systemctlというコマンドをよく使います。これはsystemdというLinuxのサービス管理システムを操作するためのコマンドです。

この記事では、systemdの基本と、サービスの管理方法を初心者向けに解説します。

systemdとは?

Linuxの「管理人」

systemd(システムディー)は、Linuxのシステムとサービスを管理するための仕組みです。現在のほとんどのLinuxディストリビューション(Ubuntu、CentOS、RHELなど)で採用されています。

systemdの役割

  • サービスの管理:起動、停止、再起動
  • 自動起動の設定:OS起動時にサービスを自動で立ち上げる
  • 依存関係の管理:サービスの起動順序を制御
  • ログの管理:サービスのログを一元管理

サービス(デーモン)とは?

サービス(デーモン)は、バックグラウンドで動き続けるプログラムのことです。

例えば:

  • nginx / apache:Webサーバー
  • mysql / postgresql:データベース
  • sshd:SSH接続を受け付ける
  • cron:定期実行

これらはサーバーが起動している間、ずっと動いてリクエストを待ち受けています。

systemctlコマンドの基本

systemdを操作するには、systemctlコマンドを使います。

サービスの起動・停止・再起動

# サービスを起動
sudo systemctl start nginx

# サービスを停止
sudo systemctl stop nginx

# サービスを再起動
sudo systemctl restart nginx

# 設定を再読み込み(サービスを止めずに)
sudo systemctl reload nginx

サービスの状態確認

# サービスの状態を確認
sudo systemctl status nginx

出力例:

● nginx.service - A high performance web server
   Loaded: loaded (/lib/systemd/system/nginx.service; enabled)
   Active: active (running) since Mon 2025-01-01 10:00:00 JST
   ...

Active: active (running)と表示されていれば、サービスは正常に動いています。

自動起動の設定

# OS起動時に自動起動を有効にする
sudo systemctl enable nginx

# 自動起動を無効にする
sudo systemctl disable nginx

# 自動起動が有効か確認
sudo systemctl is-enabled nginx

コマンドまとめ

コマンド 説明
start サービスを起動
stop サービスを停止
restart サービスを再起動
reload 設定を再読み込み
status 状態を確認
enable 自動起動を有効に
disable 自動起動を無効に

JOIN US

SKサービスでエンジニアデビューしませんか?

未経験からエンジニアを目指す方を積極的に採用中。正社員雇用で安定した環境、最短3ヶ月で現場変更可能。

詳細はこちらから

サービス一覧の確認

システムで動いているサービスを確認する方法です。

全てのサービスを一覧表示

systemctl list-units --type=service

有効な(自動起動する)サービスを一覧表示

systemctl list-unit-files --type=service --state=enabled

失敗しているサービスを確認

systemctl --failed

ログの確認(journalctl)

systemdでは、journalctlコマンドでサービスのログを確認できます。

基本的な使い方

# システム全体のログを表示
journalctl

# 特定のサービスのログを表示
journalctl -u nginx

# 最新のログをリアルタイムで表示
journalctl -f

# 特定のサービスのログをリアルタイムで表示
journalctl -u nginx -f

# 今日のログだけ表示
journalctl --since today

Unitファイル

systemdでは、サービスの設定をUnitファイルという形式で管理します。

Unitファイルの場所

# システムのUnitファイル
/lib/systemd/system/

# カスタムUnitファイル(こちらを編集)
/etc/systemd/system/

Unitファイルの例

簡単なサービスのUnitファイルを見てみましょう。

[Unit]
Description=My Application
After=network.target

[Service]
Type=simple
ExecStart=/usr/bin/myapp
Restart=always

[Install]
WantedBy=multi-user.target
セクション 説明
[Unit] サービスの説明、依存関係
[Service] サービスの実行方法
[Install] 自動起動の設定

Unitファイルを変更したら

Unitファイルを編集した後は、設定を再読み込みする必要があります。

sudo systemctl daemon-reload

よくあるトラブルと対処法

サービスが起動しない

# 状態を確認
sudo systemctl status nginx

# ログを確認
journalctl -u nginx

ログにエラーメッセージが出ていないか確認しましょう。

設定ファイルのエラー

多くのサービスには、設定ファイルのテストコマンドがあります。

# nginxの設定テスト
sudo nginx -t

# Apacheの設定テスト
sudo apachectl configtest

まとめ

この記事のポイントを整理します。

項目 内容
systemdとは Linuxのシステム・サービス管理の仕組み
systemctlとは systemdを操作するコマンド
基本操作 start、stop、restart、status、enable
ログ確認 journalctl -u サービス名
設定変更後 daemon-reload を忘れずに

systemdは、Linuxサーバー管理の基本中の基本です。サービスの起動・停止・状態確認は毎日のように使うので、しっかり覚えておきましょう!

JOIN US

SKサービスでエンジニアデビューしませんか?

未経験からエンジニアを目指す方を積極的に採用中。正社員雇用で安定した環境、最短3ヶ月で現場変更可能。

詳細はこちらから
この記事をシェア
JOIN US JOIN US JOIN US JOIN US JOIN US JOIN US JOIN US JOIN US

ENTRY

- エントリーはこちらから -

Page Top