Linuxは、最近のほとんどの人と同じように、オプションのマルチタスクシステムです。そして、これを実際の体験にするために、多くのアプリケーションはサービスを通じてバックグラウンドで処理されます。さて、さまざまな時間と状況で、システムユーザーはこれらのサービスを開始、停止、または再起動する必要があります。そのため、この投稿では、systemctlコマンドを使用してLinuxでサービスを処理する方法を学習します。
また、この投稿では、コマンドで実行できる多くのユーティリティを紹介します。これに加えて、サービスとは何か、systemctlに到達する方法について説明します。
systemdコマンドとsystemctlコマンドの違いは何ですか?
systemctlの使用を確認する前に コマンドの場合、コマンドと systemdの違いを確認することをお勧めします 。
Linuxサービスの管理と読み込みを最適化することを主な目的として、 systemd 生まれました。古いSysvinitに置き換わるものです 論争がないわけではありません。
Systemdは、一連のSysVおよびLSB互換のデーモンとスクリプトで構成されています。また、オンデマンドでデーモンを起動し、Linuxコントロールグループを使用してプロセスを監視することもできます。
一方、 systemctl システムサービスを管理するために使用されるコマンドです。 systemdの一種のインターフェースとして機能します 。今ではそうです。 systemctlを使用します 。
systemctlコマンドを使用したLinuxでのサービスの管理
最新のLinuxディストリビューションを使用している場合は、 systemdをインストールして実行しています。 したがって、 systemctl コマンド。
コマンド自体は非常に使いやすいです。したがって、基本的な構文は次のとおりです。
systemctl [OPTIONS...] {COMMAND} ...
Linuxのほとんどのコマンドと同様に、システムの動作を変更するオプションがあります。 systemctlを表示する場合 ヘルプ、利用可能な多くのオプションとコマンドが表示されます。
:~$ systemctl --help
これは、 systemctl システムサービスの管理に使用されます。また、コンピュータのシャットダウンや再起動など、他の操作を実行することもできます。
ただし、 systemctlを使用したサービスの管理について学習します。 状況を通じて。
1。システムのサービスを一覧表示する
まず、コマンド systemctl を考慮する必要があります。 スーパーユーザーとして使用する必要があります。または、少なくともユーザーが sudoを使用できること 。次に、ターミナルを開き、 systemdの下にシステムサービスを一覧表示します。 、次のコマンドを実行します
:~$ sudo systemctl
画面出力からわかるように、少し面倒です。ただし、システムのサービスを視覚化することはできます。
ただし、list-unitサブコマンドとフィルターを追加して、結果の表示を改善することは可能です。
:~$ sudo systemctl list-units --type=service --all
この画像は、より明確な結果を示しています。最も重要な列は、load、active、およびsub-columnsであり、システムでアクティブであるかどうか、および実行されているかどうかが表示されます。
実行中のコマンドのみを表示する場合は、このコマンドの前のコマンドを変更するだけです。
:~$ sudo systemctl list-units --type=service --state=running
2。 systemctlコマンドを使用してサービスを開始、停止、再開します
システムにどのサービスがあるかがわかったので、サービスが停止している場合は開始するか、実行中の場合は停止するかを選択できます。
サービスを開始するには、次のコマンドを使用します:
:~$ sudo systemctl start [service]
サービスの名前をserviceに置き換えます。 MySQLの場合、コマンドは次のようになります。
:~$ sudo systemctl start mysql
逆に、停止する場合は、stopサブコマンドとサービスの名前を使用します。
:~$ sudo systemctl stop [service]
MySQLの例に従うと、次のようになります。
:~$ sudo systemctl stop mysql
一方、一部のサービスの構成を変更しなければならない場合があります。これらの変更を適用するには、再起動する必要があります。
:~$ sudo systemctl restart [service]
サービスをリロードすることもできます。この場合、サービスを部分的に再構成するだけです。サブコマンドは「リロード」です。
:~$ sudo systemctl reload [service]
完全に再起動するには、再起動オプションを使用する必要があります。
3。システムの起動時にサービスを開始するかどうかを有効または無効にします
サーバーまたはそれらのアプリケーションの一部の操作にサードパーティのサービスが非常に重要な場合は、systemdにシステムと一緒に起動するように依頼すると便利です。
これを行うには、次の構文に従ってください。
:~$ sudo systemctl enable [service]
したがって、[service]を必要なサービスの名前に置き換えてください。
無効にするには、disableサブコマンドを使用します。
:~$ sudo systemctl disable [service]
このようにして、自動的に開始するサービスと開始しないサービスを設定できます。
4。 Systemctlを使用したサービスのマスキングとマスキング解除
サービスを無効にしたいが、自動または手動で有効にできない場合は、マスクする必要があります。いつでもマスクを解除して再度有効にできることを心配する必要はありません。
したがって、サービスをマスクするには、次のコマンドを使用します
:~$ sudo systemctl mask [service]
そして、前のコマンドを逆にするには:
:~$ sudo systemctl unmask [service]
これにより、サーバー管理のセキュリティがさらに強化されます。ワークシェアリングに最適です。マスクされたサービスを開始または有効にするには、最初にマスクを解除する必要があります。
5。 systemctlコマンドを使用してサービスのステータスを確認します
多くの場合、サービスのステータスを知っておくと便利です。これは、発生する可能性のあるエラーを検出するためです。
これを行うには、次のコマンドを使用します。
:~$ sudo systemctl status [service]
サービスが実行されている場合は、次のような画像が表示されます。
そうでない場合は、次のように表示されます。
これは、特定のサービスが実行されているかどうかを知るのに非常に役立ちます。
結論
ターミナルからのサービスの管理は少し複雑かもしれませんが、そうではありません。これにより、システムをユーザーが正しく管理できるようになります。
この投稿では、これらのサービスの基本的な管理にsystemctlコマンドを使用しました。ただし、今観察した例が最も一般的なケースであるため、十分です。