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

サービスの管理は、Linuxシステム管理者の重要な責任の1つです。 Linuxユーザーは、何らかの方法でサービスを処理する必要がある可能性があるため、システムサービスの管理方法を知ることも重要です。

このガイドでは、systemctlコマンドを使用してsystemdサービスを管理する方法について説明します。

systemdとは何ですか?

Systemdは、Linuxオペレーティングシステム用のシステムおよびサービスマネージャーです。これは、Ubuntu、Red RHEL、OpenSuse、ArchLinuxなどの多くのLinuxディストリビューションのデフォルトのサービスマネージャーです。 systemdには、以下のような古いサービスマネージャの後継であるSystem Vの成り上がり

System Vサービスマネージャーとは異なり、systemdは、Linuxのブートプロセスを高速化するためにサービスを並行して開始することにより、より効率的になることを目指しています。 systemdのもう1つのユニークな機能は、オンデマンドでサービスを提供することです。つまり、システムが必要とする場合にのみサービスの開始を延期できるため、パフォーマンスが大幅に向上します。

Systemdは、オペレーティングプロセスやサービスの管理だけでなく、ファイルシステムのマウント、ネットワークの監視、タイマーの実行などにも使用できます。

systemctlを使用したsystemdサービスの管理

Linuxでは、 systemctlコマンドがsystemdサービスの管理を担当します。システムに/ usr / lib / systemdディレクトリーがある場合は、systemdサービス・マネージャーを使用している可能性があります。

次のコマンドのいずれかを実行して、systemdサービスマネージャがシステムで使用可能かどうかを確認することもできます。

 systemctl --version
systemd --version

サービスのステータスの確認

システム上の特定のサービスのステータスを確認するには、 statusコマンドに続けて、確認するサービスの名前を使用します

たとえば、 Dockerサービスのステータスを確認するには、次のコマンドを実行できます。 Dockerは、アプリケーションを効率的に構築するためにソフトウェア開発者が使用する最新の仮想化プログラムです。

 systemctl status docker

注: systemctlヘルプマニュアルでは、 systemctlの後の動詞もコマンドとして参照しているため、このガイドでは一貫性を保つためにその定義に固執します。

関連: Docker仮想化ソフトウェアを使用する理由

statusコマンドは、サービスのステータスを一覧表示するだけでなく、サービスのプロセスID、メモリ使用量、サービスの最近の変更の簡単な一覧などの重要な情報も提供します。

サービスのステータスを知ることは、エラーのトラブルシューティングや問題の診断に使用する主な方法の1つです。システム管理者は、何かが機能していない理由について詳しく説明する前に、サービスが稼働しているかどうかを最初に確認する傾向があります。

systemctlを使用したサービスの一覧表示

多くの場合、サービスの管理に進む前に、システムで利用可能なサービスを知る必要があります。次のコマンドを使用して、システムで使用可能なすべてのサービスを一覧表示できます。

 systemctl list-unit-files --type service --all

このコマンドは、システムで利用可能なサービスを一覧表示するだけでなく、これらのサービスの状態も表示します。最も一般的な状態は次のとおりです。有効、無効、マスクなど。

サービスの開始と停止

stopコマンドは、実行する必要がなくなったサービスを停止するために使用されます。たとえば、 Dockerサービスを停止するには:

 systemctl stop docker

Linuxマシンでサービスを停止する理由はいくつかあります。未使用のサービスは不要なシステムリソースを消費し、PCのパフォーマンスに悪影響を及ぼします。

サービスが大量のメモリを消費している場合は、Linuxでメモリを管理するための他のオプションを検討してください。複数のサービスを実行していることも、悪用するポートを外部に公開するため、潜在的なセキュリティリスクです。

実行されていないサービスを開始するには、 startコマンドを使用します。たとえば、最近停止したDockerサービスを開始するには、次のようにします。

 systemctl start docker

サービスを停止してすぐに再開する場合は、次のようにrestartコマンドを使用できます。

 systemctl restart docker

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

サービスの有効化開始という用語は、一部のLinuxユーザーを混乱させることがよくあります。サービスを有効にすると、システムの起動時にサービスを利用できるようにするか、特定のハードウェアが接続されたときにサービスを準備する必要があるということです。LinuxでDockerサービスを有効にするには:

 systemctl enable docker

サービスが起動時に開始されないようにするには、 disableコマンドを使用できます。たとえば、次のコマンドを発行して、 Dockerサービスを無効にします。

 systemctl disable docker

システム上のサービスを管理するために使用できるコマンドやオプションは他にもたくさんあります。ヘルプコマンドsystemctl–helpを実行するか、コマンドの回避方法がわからない場合はsystemctlのマニュアルページを参照してください。

 man systemctl

多くの場合、一部のサービスはシステムの起動時に開始されます。これらのサービスは、システムで必要とされない場合、コンピューターの全体的なパフォーマンスに影響を与えます。 Linuxでは、このようなスタートアップサービスやデーモンを簡単に停止できます。