Linuxのsystemctlによるサービス管理を徹底解説

inuxのシステム管理を行う上で、サービスの管理は欠かせません。その中でも、systemctl コマンドはシステムの起動やサービスの管理を簡単に行える便利なツールです。本記事では、systemctl を活用したサービス管理について、基本から応用まで詳しく解説します。初心者の方にも分かりやすいように、具体的なコマンド例とともに紹介します。

systemctlとは?

systemctl は、Linuxのsystemdというシステムおよびサービスマネージャーを操作するためのコマンドです。systemd は、ほとんどの最新のLinuxディストリビューションで標準採用されており、サービスの起動や停止、ステータス確認などを一元管理できます。

サービスの基本操作

サービスの起動

特定のサービスを起動するには、次のコマンドを使用します。

sudo systemctl start <サービス名>

例:

sudo systemctl start nginx

サービスの停止

サービスを停止する場合は、以下のコマンドを使用します。

sudo systemctl stop <サービス名>

例:

sudo systemctl stop nginx

サービスの再起動

設定変更後などにサービスを再起動するには、以下のコマンドを実行します。

sudo systemctl restart <サービス名>

例:

sudo systemctl restart nginx

サービスの状態を確認

サービスが実行中かどうかを確認するには、次のコマンドを使用します。

sudo systemctl status <サービス名>

例:

sudo systemctl status nginx

サービスの自動起動設定

サーバー起動時にサービスを有効化

サーバー起動時にサービスを自動起動するには、以下のコマンドを使用します。

sudo systemctl enable <サービス名>

例:

sudo systemctl enable nginx

自動起動を無効化

特定のサービスを起動時に自動実行しないようにするには、以下のコマンドを使用します。

sudo systemctl disable <サービス名>

例:

sudo systemctl disable nginx

現在の自動起動状態を確認

特定のサービスが自動起動に設定されているかを確認するには、以下のコマンドを使用します。

sudo systemctl is-enabled <サービス名>

例:

sudo systemctl is-enabled nginx

systemctlの応用的な使い方

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

現在実行中のサービスを一覧で確認するには、次のコマンドを実行します。

sudo systemctl list-units --type=service --state=running

すべてのサービスを一覧表示

有効・無効を含むすべてのサービスを表示するには、以下のコマンドを使用します。

sudo systemctl list-units --type=service

サービスの設定ファイルを編集

サービスの設定を変更する場合は、以下のコマンドで設定ファイルを編集できます。

sudo systemctl edit <サービス名>

変更を反映させる

設定ファイルを変更した後、systemd全体をリロードするには以下のコマンドを使用します。

sudo systemctl daemon-reload

systemctlとsysvinitの比較

従来のsysvinit (service コマンド)と比べて、systemctl は以下の点で優れています。

  • 並列起動によりブート時間が短縮される
  • 依存関係を自動で管理できる
  • ログ管理 (journalctl) との連携が可能

例えば、service コマンドでの起動:

sudo service nginx start

systemctl の場合:

sudo systemctl start nginx

まとめ

systemctl を使うことで、Linuxのサービス管理がより簡単で直感的になります。基本的な起動・停止・ステータス確認に加え、自動起動設定や詳細な管理機能も活用できます。本記事で紹介したコマンドを実践しながら、Linuxのサービス管理をマスターしましょう!

タイトルとURLをコピーしました