ウィンドウズマックソフトウェア設定セキュリティ生産性リナックスAndroidパフォーマンス設定Apple すべて

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

編集済み 2 数週間前 によって ExtremeHow 編集チーム

初期化サービスコマンドラインsystemd管理コントロールスタートアップスクリプトシスアドミン設定監視

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

翻訳が更新されました 6 数日前

Linuxベースのシステムでは、サービスは不可欠な要素です。これらのサービスはバックグラウンドプロセスであり、ネットワーキング、データベースホスティング、Webサーバーなどのさまざまな機能に寄与するために継続的に実行されます。これらのサービスを効率的に管理することは、システム管理の重要な部分です。このガイドでは、システムとサービスマネージャーであるsystemdを監視および制御するためのコマンドラインユーティリティであるsystemctlを使用してサービスを管理する方法を説明します。

systemdとsystemctlの理解

systemctlに入る前に、systemdが何であるかを理解することが重要です。SystemdはLinux用のシステムおよびサービスマネージャーであり、並列化機能を提供し、ソケットおよびD-Busアクティベーションを使用してサービスを起動し、オンデマンドでデーモンを起動し、Linuxのコントロールグループを使用してプロセスを追跡し、マウントおよび自動マウントポイントを維持します。

systemctlはsystemdを管理するためのコマンドラインユーティリティです。サービスやユニットを制御および管理するための多くのオプションを提供します。ユニットは、systemdが管理する方法を知っているリソースであり、通常、サービスを含むだけでなく、マウントポイントやソケットなどの他のタイプも含みます。

サービスの一覧表示

サービスを管理する前に、現在実行中のサービスを理解するためにそれらを一覧表示する方法を知ることが良いです。以下のコマンドが役立ちます:

systemctl list-units --type service --all

このコマンドはすべてのサービスを一覧表示し、それぞれのステータスを表示します。出力には、それぞれのサービスがアクティブ、非アクティブ、または失敗しているかどうかが示されます。

サービスの開始

現在実行されていないサービスを開始するには、startコマンドを次のように使用します:

sudo systemctl start <service-name>

たとえば、Apache HTTPサーバーを開始するには、次を実行します:

sudo systemctl start httpd

サービスの停止

サービスを停止する必要がある場合、stopコマンドを使用します。これは、メンテナンスや更新を行うときなど、さまざまなシナリオで役立ちます:

sudo systemctl stop <service-name>

例:

sudo systemctl stop httpd

これにより、Apache HTTPサーバーが停止します。

サービスの再起動

時折、サービスを停止して再起動するのではなく、直接再起動したいことがあります。これを行うには、restartコマンドを使用します:

sudo systemctl restart <service-name>

例:

sudo systemctl restart httpd

これにより、Apache HTTPサーバーが再起動します。これは特に、設定ファイルを変更し、サービスがこれらの変更を再読み込みすることを望むときに役立ちます。

サービスのステータスを確認する

サービスが実行中であるかどうかを確認するには、statusコマンドを使用します。このコマンドを実行すると、サービスの現在のステータス、エラーメッセージ、およびログ出力に関する情報が得られます:

systemctl status <service-name>

たとえば:

systemctl status httpd

これは、httpdサービスに関する詳細情報を表示し、アクティブであるかどうか、有効であるかどうか、または最後の起動時に問題があったかどうかを示します。

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

サービスを有効にすることで、それが起動時に自動的に開始されることを保証します。逆に、サービスを無効にすると、それが自動的に開始されないことを意味します:

sudo systemctl enable <service-name>
sudo systemctl disable <service-name>

たとえば、Apache HTTPサーバーを有効にするには:

sudo systemctl enable httpd

同様に、自動的に起動しないようにするには:

sudo systemctl disable httpd

有効化は、システムがオンのときに常に実行したいサービス(Webサーバーやデータベースサーバーなど)に特に有益です。

サービスのマスキングとアンマスキング

サービスをマスクすることは、サービスがまったく実行されないことを確実にするための強力な方法です。サービスがマスクされると、アンマスクされるまでどのようにしても開始できません:

sudo systemctl mask <service-name>
sudo systemctl unmask <service-name>

例:

sudo systemctl mask httpd

このコマンドは、Apache HTTPサーバーを開始しようとしても、それが開始されないことを保証します。再び実行できるようにするには、それをアンマスクします:

sudo systemctl unmask httpd

systemdマネージャーの構成をリロードする

systemd関連の設定ファイルに変更を加えた場合、次のコマンドを使用してsystemdマネージャーの構成をリロードする必要があります:

sudo systemctl daemon-reload

このコマンドは、新しい設定ファイルを追加したり、/etc/systemd/systemまたは/lib/systemd/systemディレクトリ内の既存のファイルを変更したりした場合に特に重要です。

サービスユニットの編集

時折、サービスの動作をカスタマイズするためにサービスユニットファイルを編集する必要があるかもしれません。systemctlを使用すると、サービスファイルに直接アクセスすることなくこれを行うことができます:

sudo systemctl edit <service-name>

これにより、デフォルトのテキストエディタでユニットファイルが開きます。エディタを閉じて変更を保存すると、systemctlはオーバーライドを作成します。その後、systemdマネージャーの構成をリロードするのを忘れないでください。

結論

systemctlを使用してサービスを管理することは、Linuxシステム管理者にとって重要なスキルです。この強力なユーティリティは、システム上で実行されるサービスを制御するための簡単なコマンドを提供します。サービスを開始、停止、有効化、無効化するかどうかにかかわらず、systemctlはこれらのプロセスを簡素化し、システムの信頼性とパフォーマンスを向上させます。

また、サービス管理のレベルを理解することも重要です。単純な操作(開始と停止)から、マスキングやユニットファイルの編集などの複雑な操作まで、systemctlを使用することに慣れることで、Linuxシステム上のサービスをより効果的に管理できるようになり、システム全体の安定性と効率性に寄与します。

記事の内容に誤りがある場合, あなたは


コメント