Linux – systemd の基本的なコマンド まとめ

目次

概要

systemd は、Linux のシステムおよびサービスマネージャで、システムの起動プロセスを管理し、サービスの開始、停止、再起動、ステータス確認などを行うためのコマンドを提供します。 この記事では、systemd の基本的なコマンドについて説明します。

systemd のコマンド一覧

以下は、systemctl コマンドの一覧をテーブル形式でまとめたものです。

コマンド 説明
systemctl start <service_name> 指定したサービスを開始します。
systemctl stop <service_name> 指定したサービスを停止します。
systemctl restart <service_name> 指定したサービスを再起動します。
systemctl status <service_name> 指定したサービスのステータスを表示します。
systemctl enable <service_name> 指定したサービスを有効化し、ブート時に自動起動するようにします。
systemctl disable <service_name> 指定したサービスを無効化し、ブート時に自動起動しないようにします。
systemctl reload <service_name> 指定したサービスをリロードし、設定ファイルの変更を反映します。
systemctl reload-or-restart <service_name> 指定したサービスをリロードまたは再起動します。
systemctl list-units --type=<type> 現在の種類が のユニットの一覧を表示します。
systemctl is-active <service_name> 指定したサービスがアクティブかどうかを確認します。
systemctl is-enabled <service_name> 指定したサービスが有効かどうかを確認します。
systemctl mask <service_name> 指定したサービスをマスクし、起動できないようにします。
systemctl unmask <service_name> 指定したサービスをアンマスクし、再び起動できるようにします。
systemctl show <service_name> 指定したサービスの詳細情報を表示します。
systemctl cat <service_name> 指定したサービスのユニットファイルの内容を表示します。
systemctl edit <service_name> 指定したサービスのオーバーライドファイルを編集します。
systemctl reset-failed <service_name> 失敗したサービスの状態をリセットします。
systemctl list-dependencies <service_name> 指定したサービスの依存関係を表示します。
systemctl stop --now <service_name> 指定したサービスを停止し、現在の実行状態も停止します。
systemctl start --now <service_name> 指定したサービスを開始し、現在の実行状態も開始します。
systemctl isolate <target> 指定したターゲットに変更します。
systemctl get-default 現在のデフォルトターゲットを取得します。
systemctl set-default <target> デフォルトターゲットを設定します。

サービスの有効化・無効化

サービスの有効化とは、特定のサービスがシステムの起動時に自動的に開始されるように設定することを指します。 これにより、システムが再起動された際に手動でサービスを開始する必要がなくなります。systemctl コマンドを使用してサービスの有効化・無効化を切り替えることができます。

# サービスの有効化
sudo systemctl enable <service_name>
# サービスの無効化
sudo systemctl disable <service_name>

サービスの開始、停止、再起動

サービスの開始

サービスを開始するには、以下のコマンドを使用します。このコマンドは、指定したサービスを即座に開始します。

sudo systemctl start <service_name>

サービスの停止

サービスを停止するには、以下のコマンドを使用します。このコマンドは、指定したサービスを直ちに停止します。サービスが有効化されている場合、システムを再起動すると再び起動することに注意してください。恒久的に停止したい場合は、以下のコマンドで無効化します。

sudo systemctl disable <service_name>
sudo systemctl stop <service_name>

サービスの再起動

サービスを再起動するには、以下のコマンドを使用します。このコマンドは、サービスを一度停止し、再度開始します。設定ファイルや変更が適用される場合に便利です。

sudo systemctl restart <service_name>

サービスのリロード

サービスのリロードは、設定ファイルの変更を適用するために使用されますが、サービスを停止せずに行います。リロードをサポートしているサービスに対して有効です。

sudo systemctl reload <service_name>

サービスのリロードまたは再起動

サービスがリロードをサポートしている場合はリロードし、サポートしていない場合は再起動します。

sudo systemctl reload-or-restart <service_name>

サービスが有効かどうか確認する

サービスがシステムの起動時に自動的に開始されるように設定されているかどうかを確認します。

systemctl is-enabled <service_name>

サービスが実行中かどうか確認する

サービスが現在実行中かどうかを確認します。

systemctl is-active <service_name>

サービスの状態の確認

サービスの現在の状態を確認するには、以下のコマンドを使用します。このコマンドは、サービスの稼働状況やログメッセージなどを表示します。

sudo systemctl status <service_name>

以下は ssh.service の状態を確認する例で、出力の見方を説明します。

$ systemctl status ssh.service
● ssh.service - OpenBSD Secure Shell server
     Loaded: loaded (/lib/systemd/system/ssh.service; enabled; vendor preset: enabled)
     Active: active (running) since Mon 2025-01-06 01:40:25 JST; 2 weeks 6 days ago
       Docs: man:sshd(8)
             man:sshd_config(5)
   Main PID: 954 (sshd)
      Tasks: 1 (limit: 18997)
     Memory: 6.1M
     CGroup: /system.slice/ssh.service
             └─954 sshd: /usr/sbin/sshd -D [listener] 0 of 10-100 startups
  • ssh.service: サービス名
  • OpenBSD Secure Shell server: サービスの説明
  • Loaded:
    • /lib/systemd/system/ssh.service というパスからロードされており、enabled は起動時にサービスが有効になっていることを示します。
    • vendor preset: enabled はサービスがインストールされたときにデフォルトで有効になっていることを示します。
  • Active:
    • active (running): サービスが正常に実行中であることを示します。
  • Docs: サービスに関連するドキュメントへのリンクです。sshd の説明は man sshd で確認できます。
  • Main PID: サービスのメインプロセス ID を示します。この場合、
    • 954 がメインプロセスの PID です。
    • sshd はメインプロセスの名前です。
  • Tasks:
    • サービスによって管理されているタスクの数を示します。この場合、タスクは 1 つです。
  • Memory:
    • サービスが使用しているメモリ量を示します。この場合、6.1M バイトです。
  • CGroup:
    • サービスが属しているコントロールグループ (cgroup) を示します。
    • /system.slice/ssh.service はこのサービスが所属する cgroup を示しています。

Loaded の種類

状態 説明
loaded ユニットファイルが正常にロードされていることを示します。
not-found ユニットファイルが見つからないことを示します。
masked ユニットがマスクされていることを示します。マスクされたユニットは実行できません。

サービスの Active 欄の種類

状態 説明
active (running) サービスが正常に実行中であることを示します。
active (exited) サービスが正常に終了したことを示します。通常、1 回実行して終了するタイプのサービスに対して表示されます。
active (waiting) サービスが現在待機状態にあることを示します。多くの場合、タイマーやソケットベースのサービスで見られます。
inactive サービスが実行されておらず、停止していることを示します。
failed サービスがエラーによって失敗し、正常に開始できなかったことを示します。
activating サービスが現在開始中であることを示します。
deactivating サービスが現在停止中であることを示します。
reloading サービスが現在再読み込み中であることを示します。

参照

コメント

コメントする

目次