編集済み 2 数週間前 によって ExtremeHow 編集チーム
初期化サービスコマンドラインsystemd管理コントロールスタートアップスクリプトシスアドミン設定監視
翻訳が更新されました 6 数日前
Linuxベースのシステムでは、サービスは不可欠な要素です。これらのサービスはバックグラウンドプロセスであり、ネットワーキング、データベースホスティング、Webサーバーなどのさまざまな機能に寄与するために継続的に実行されます。これらのサービスを効率的に管理することは、システム管理の重要な部分です。このガイドでは、システムとサービスマネージャーである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マネージャーの構成をリロードする必要があります:
sudo systemctl daemon-reload
このコマンドは、新しい設定ファイルを追加したり、/etc/systemd/system
または/lib/systemd/system
ディレクトリ内の既存のファイルを変更したりした場合に特に重要です。
時折、サービスの動作をカスタマイズするためにサービスユニットファイルを編集する必要があるかもしれません。systemctlを使用すると、サービスファイルに直接アクセスすることなくこれを行うことができます:
sudo systemctl edit <service-name>
これにより、デフォルトのテキストエディタでユニットファイルが開きます。エディタを閉じて変更を保存すると、systemctlはオーバーライドを作成します。その後、systemdマネージャーの構成をリロードするのを忘れないでください。
systemctl
を使用してサービスを管理することは、Linuxシステム管理者にとって重要なスキルです。この強力なユーティリティは、システム上で実行されるサービスを制御するための簡単なコマンドを提供します。サービスを開始、停止、有効化、無効化するかどうかにかかわらず、systemctl
はこれらのプロセスを簡素化し、システムの信頼性とパフォーマンスを向上させます。
また、サービス管理のレベルを理解することも重要です。単純な操作(開始と停止)から、マスキングやユニットファイルの編集などの複雑な操作まで、systemctl
を使用することに慣れることで、Linuxシステム上のサービスをより効果的に管理できるようになり、システム全体の安定性と効率性に寄与します。
記事の内容に誤りがある場合, あなたは