Linuxでsystemctlコマンドを使ってサービスを管理する方法

Linuxでsystemctlコマンドを使ってサービスを管理する方法

現在のLinuxディストリビューションのほとんどは、systemdと呼ばれるシステム管理を担うソフトウェア群を使ってシステム管理を行っており、サービスの管理ではsystemctlコマンドを利用します。

systemctlコマンドを使えば、サービスの有効化/無効化、サービスの起動/停止、再起動、システム起動時に自動実行するなどといったサービスの管理ができます。

そこでここではRedHat系のAlmaLinuxを例に、systemctlコマンドの基本的な使い方を解説します。

systemctlコマンドの使用例

サービスの自動起動

システムの起動時にサービスも自動的に起動させたいときは、以下のようにコマンドを実行します。

# systemctl enable サービス名

自動起動の有効化とサービス開始を同時に実施

システムの起動時にサービスも自動的に起動させるよう設定し、同時にサービスも開始させたいときは、以下のようにコマンドを実行します。

# systemctl enable --now サービス名

自動起動設定の確認

対象のサービスが自動起動するよう設定されているか確認したいときは、以下のようにコマンドを実行します。

# systemctl is-enabled サービス名

自動起動するよう設定されていれば「enabled」と返ってきます。

自動起動の無効化

自動的起動設定を解除するときは、以下のようにコマンドを実行します。

# systemctl disable サービス名

サービスの起動

サービスを起動するときは、以下のようにコマンドを実行します。

# systemctl start サービス名

サービスの再起動

サービスを再起動するときは、以下のようにコマンドを実行します。

# systemctl restart サービス名

サービスの停止

サービスを停止させるときは、以下のようにコマンドを実行します。

# systemctl stop サービス名

サービスの強制終了

サービスを強制終了するときは、以下のようにコマンドを実行します。

# systemctl kill サービス名

設定の再読み込み

実行しているプログラムの設定ファイルの変更を反映させるときは、サービスを再起動する以外に以下のようにコマンドを実行する方法もあります。

# systemctl reload サービス名

サービス設定ファイルの再読み込み

サービスの設定などが記述されたユニットファイルの変更を反映させるときは、以下のようにコマンドを実行します。

# systemctl daemon-reload

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

サービスが実行中かどうかを確認するときは、以下のようにコマンドを実行します。

# systemctl is-active サービス名

サービスが実行中であれば「active」と返ってきます。

サービスの状態を確認

サービスが実行中かどうかといった状態だけでなく、サービスの設定、リソースの使用状況、プロセスID、サービス開始時のログを確認するときは、以下のようにコマンドを実行します。

# systemctl status サービス名

サービスの詳細情報を確認

サービスの詳細情報(プロパティ情報)を確認するときは、以下のようにコマンドを実行します。

# systemctl show サービス名

実行中サービスの一覧を表示

現在実行中のサービスを一覧表示するときは、以下のようにコマンドを実行します。

# systemctl list-units --type=service

定義されているサービスの一覧を表示

定義されているサービスを一覧表示するときは、以下のようにコマンドを実行します。

# systemctl list-unit-files --type=service

あとがき

ここで紹介しているコマンドがすべてではありませんが、まずはここで紹介しているコマンドを使いこなせれば、基本的なサービス管理で困ることはないでしょう。