ホームページ > 記事 > システムチュートリアル > Linuxのserviceとsystemctlの違いは何ですか?
Linux では、service と systemctl は 2 つの重要なコマンドであり、非常によく似ています。それらの類似性から、どのように異なるのか、同じ意味で使用できるのかどうか疑問に思うことがよくあります。
serviceやsystemctlの詳細を理解することで、柔軟に利用できるようになります。
service コマンドを使用してファイアウォールのステータスを確認する
Linux では、service コマンドは、ユーザーがシステム サービスを簡単に構成して操作できるようにするラッパー スクリプトです。これは systemd よりも前にあり、主に /etc/init.d にあるスクリプトで動作します。
systemctl は以前のサービスの重要性を大幅に置き換えましたが、多くの従来の機能を通じて引き続き関連性を維持しています。
関連する init システムの SysVinit から systemd への移行は物議を醸しましたが、元の init システムの機能に関する課題が増大したため、この移行が必要になりました。
systemd は、サービスを逐次ではなく並列で開始するため、SysVinit よりも起動時間が短縮され、コマンド ライン インターフェイス (CLI) を介してシステム デーモンのより高度な制御が可能になります。
ターミナルで systemctl を使用してファイアウォールのステータスを確認します
service と同様に、systemctl は非常に多用途のコマンドで、Linux システム上で実行されているサービスの有効化、リロード、開始、停止、ステータスの確認を行うことができます。
systemctl は、systemd でファイルを構成するための使いやすく強力なインターフェイスとして機能します。たとえば、systemctl を使用すると、たった 1 つまたは 2 つのコマンドで起動時にサービスを無効にすることができます。
systemctl は初期化システム SysVinit と下位互換性があり、主にサービスで使用されます。 systemctl は service の直接の後継ではありませんが、システム サービスを管理するツールという点では、より多用途で柔軟です。
サービスのブロックや無効化などのタスクは、1 行または 2 行のコマンドで完了できます。
service と systemctl は主に同じ目的を果たします。これらの類似点の多くは、ユーザーがサービスから systemctl に簡単に移行できるようにすることを目的としています。
ただし、Linux で init システムの使用を開始する場合、この 2 つのシステムには注意すべき相違点がいくつかあります。
さまざまな初期化システム
service と systemctl の最も大きな違いは、それらが異なる初期化システムに属していることです。サービスは、古典的な Linux 初期化プロセスである SysVinit (System V Init) に属します。
systemctl は systemd に属し、SysVinit および多くの Linux システムで使用されている最新の初期化プロセスの後継です。
service と systemctl は異なる初期化プロセスの一部であるため、異なるディレクトリで初期化システム ファイルを操作します。 service は /etc/init.d にある初期化システム ファイルを操作し、systemctl は /lib/systemd にある初期化システム ファイルを操作します。
通常、systemd init システムは、すぐに使える Linux インストールで使用されるため、systemctl を使用してそれを操作する方法に慣れておく必要があります。
systemd が 2010 年にリリースされる前、またはそれと同時に動作していたシステムで使用する予定がある場合は、service コマンドの使用に慣れていても問題ありません。
互換性
互換性の観点から見ると、service は依然として非常に便利なコマンドです。ラッパー コマンドとして、別のシステムで使用されているサービス マネージャーにリダイレクトできます。さまざまな Linux システムを使用する場合は、Linux システムを学習し、自分のツールに組み込む計画を立てる必要があります。
基礎となる関数
systemctl とサービスのもう 1 つの重要な違いは、その動作方法です。 service は、特定のシステムで使用される基盤となるサービス マネージャーにリダイレクトする高レベルのコマンドです。つまり、システム間で非常に汎用性があります。 /etc/init.d、upstart、さらには systemctl にリダイレクトされる場合があります。一方、systemctl コマンドは systemd と直接対話します。
######能力######実行可能なタスクという点では、systemctl は機能的にサービスをはるかに上回っていると言っても過言ではありません。特定のサービスの開始、停止、有効化、無効化などの基本機能に加えて、systemctl を使用して高度な構成を設定することもできます。 サービスは、それが依存する基盤となるサービス マネージャーと互換性がある必要があるため、その機能はさらに制限されます。
Linux 上でシステム サービスを効率的に構成する
以上がLinuxのserviceとsystemctlの違いは何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。