サービスは基本的に、インターフェイスがないため、システムユーザーの対話型制御の外部でバックグラウンドで実行されるプログラムです。バックグラウンドで実行され、必要なときにいつでも使用できます。
一般的に知られているサービスには、Mysql、ssh、Nginxなどがあります。 Debianでは、サービスはSystemdで管理されます。これは、System Vに代わるものであり、オペレーティングシステムが適切に機能するための鍵となるサービスを含め、システムとそのコンポーネントを初期化します。
起動のたびに実行されるDebianおよびUbuntuベースのバージョンのサービスの一部は、開始、再起動、停止、およびリロードです。このチュートリアルでは、それらすべてについて詳しく説明します。
SystemdとInit
Linuxベースのディストリビューションは、最近、古き良きinitの代わりにsystemdを使用しています。 systemdでは、systemctlコマンドを使用してサービスを管理できますが、initでは、serviceコマンドを使用してサービスを管理します。
また、Linuxシステム(この場合はDebian)はsystemdを使用していますが、initシステム向けのserviceコマンドを利用できる柔軟性があることにも気付くでしょう。これは、サービスコマンドがsystemctlにリダイレクトされるためです。 sysadminsはserviceコマンドを使用する習慣があったため、systemdによって導入された下位互換性があるとしましょう。
Debian 11でサービスを開始、停止、再起動します
この記事ではsystemctlコマンドとserviceコマンドの両方について説明するため、サービスの管理について心配する必要はありません。面倒なことはせずに、始めましょう。
方法1:Systemctlを使用する
systemctlコマンドは、systemdという名前の最後の「d」で表されるLinuxサービスおよびデーモンを管理するために使用されるsystemdデーモンスイートです。この「d」は、SysV initスクリプトとの下位互換性があり、起動時のシステムサービスの並列起動、デーモンのオンデマンドアクティベーション、依存関係ベースのサービス制御ロジックなどのいくつかの機能を提供するように設計されたUnixデーモンが原因で発生しました。その目的は、すべてのLinuxベースのディストリビューションの構成と一般的な動作を統合し、古いUnixSystemVおよびBSDinitシステムを置き換えることです。
1。すべてのサービスの一覧表示
systemctlコマンドを使用してDebianマシンでサービスを開始、停止、再起動する方法を確認する前に、まずシステムで利用可能なサービスを知る必要があります。そのため、listコマンドを使用して、Linuxシステム内のすべてのサービスを一覧表示します。
systemctl list-unit-files --type service -all
ご覧のとおり、上記のコマンドはサービスのタイプとその状態を出力します。サービス状態の値は、有効、マスク(マスクが設定解除されるまで非アクティブ)、無効、生成、または静的のいずれかになります。
実行中のサービスのみを出力するには、systemctlコマンドとgrepコマンドを組み合わせることができます。これで問題ありません。
sudo systemctl | grep running
systemctlコマンドは、次の表の構文に従って、サービスの開始、ステータスの確認、停止、および再起動に使用されます。
systemctl status(ServiceName) |
systemctl start(ServiceName) |
sudo systemctl stop(ServiceName) |
sudo systemctl restart(ServiceName) |
2。サービスを開始する
systemctlコマンドを使用してサービスを開始するには、startオプションを使用します。このオプションの後に、開始するサービスの名前が続きます。そのため、次の構文を使用してください。
systemctl start (ServiceName)
その後、(ServiceName)を、開始する実際のサービスに置き換えます。この場合のように、vsftpdサービスを開始します。
sudo systemctl start vsftpd.service
上記のように、サービスは稼働しています。
3。サービスのステータス
上記の表で前述したように、サービスのステータスを確認するための構文は次のとおりです。
systemctl status (ServiceName)
したがって、(ServiceName)を適切な値に置き換えながら、構文を利用します。 vsftpdサービスのステータスを確認するには、次のコマンドを発行できます。
sudo systemctl status vsftpd.service
以下のスナップショットでは、sshサービスがアクティブで適切に機能していることがわかります
4。サービスの停止
それでは、サービスを停止する方法について説明しましょう。これを行うには、systemctlコマンドのstopオプションを使用し、その後に停止するサービスの名前を続けます。サービスの停止は、次の構文に従います。
sudo systemctl stop (ServiceName)
たとえば、現在実行中のvsftpdサービスを停止するには、次のコマンドを実行します。
sudo systemctl stop vsftpd.service
停止コマンドを実行すると、以前アクティブだったボタンが非アクティブ(無効)に切り替わったことがわかります。
5。サービスを再開します
systemctlコマンドを使用してサービスを再起動するには、「restart」オプションを使用します。前の例と同様に、このオプションの後には、次の構文に示すように、再起動するサービスの名前も続きます。
sudo systemctl restart (ServiceName)
次に、(ServiceName)を、再起動する実際のサービス(この場合は「vsftpd」)に置き換えます。
sudo systemctl restart vsftpd.service
これが、Systemdを使用してサービスを再開する方法です。
Systemdの詳細については、このリンクにアクセスしてください。
方法2:サービスコマンドを使用する
serviceコマンドは、/ etc / init.dディレクトリーの下のサービスを管理しますが、一部のディストリビューションは、コマンドを前に説明したsystemctlコマンドにリダイレクトします。 serviceコマンドは、サービスを管理するためにLinuxシステムの以前のディストリビューションで一般的に使用されていたinitデーモンの一部です。
systemctlと同様に、serviceコマンドを使用して、以下の表で説明されている構文に従って、ステータスの確認、サービスの開始、再起動、および停止を行うこともできます。
systemctl(ServiceName)start |
sudoサービス(ServiceName)のステータス |
sudoサービス(ServiceName)の開始 |
sudo service(ServiceName)stop |
次のセクションでは、上記の表の構文を適用する方法の例を示します
1。サービスを開始する
それでは、サービスを開始する方法について説明しましょう。これを実現するために、serviceコマンドのstartオプションを使用します。このオプションは、実行するサービスの名前の後にあります。構文は次のとおりです。
sudo service (ServiceName) start
たとえば、sshというサービスを開始する場合は、(ServiceName)を、この場合の「vsftpd」のように、開始する予定の実際のサービスに置き換えます。
sudo service vsftpd start
2。サービスのステータスを確認する
次の構文を使用して、サービスのステータスを確認します。
sudo service (ServiceName) status
たとえば、serviceコマンドを使用してvsftpdなどのサービスのステータスチェックを実行する場合は、次のように構文(ServiceName)をvsftpdという名前に置き換える必要があります。
sudo service vsftpd status
3。サービスの停止
それでは、サービスを停止する方法を見てみましょう。これを行うには、停止するサービスの名前が前に付いた停止オプションを使用します。構文は次のとおりです。
sudo service (ServiceName) stop
その後、(ServiceName)を、停止する実際のサービス(この場合は「vsftpd」)に置き換えます。
sudo service vsftpd stop
ご覧のとおり、サービスはstopコマンドを実行した後、Inactive(dead)を読み取るようになりました。これは、意図したとおりに機能していることを意味します。
4。サービスを再開します
次の構文に従うserviceコマンドを使用して、再起動サービスを試してみましょう。
sudo service (ServiceName) restart
置換:
sudo service vsftpd restart
ご覧のとおり、サービスコマンドは希望どおりに正しく機能します。
さらに、次のコマンドを使用して、サービス自体を中断せずにサービス構成を再ロードできます。
sudo service vsftpd reload
このリンクにアクセスして、サービスコマンドの詳細を確認できます。
起動時にサービスを有効にする方法
システムの起動時にDebianサービスを起動できるようにする場合は、次の構文を使用します。
sudo systemctl enable SERVICE_NAME
置換:
sudo systemctl enable vsftpd.service
起動時にサービスを無効にする方法
次の構文を使用して、システムの起動中にサービスの起動を停止することもできます。
sudo systemctl disable SERVICE_NAME
例:
sudo systemctl disable vsftpd.service
まとめ
サービスはあらゆるデバイスの重要なコンポーネントです。したがって、それらを管理することは、Linuxレベルのユーザーにとって必須です。このガイドは、サービスの管理が非常に簡単で、さまざまな方法で実行できることを示しています。 Linuxでサービスのタスクを実行するための理想的で推奨される方法は、このガイドの最初のセクションで前に説明したsystemctlコマンドであることを覚えておいてください。 /etc/init.dディレクトリの処理などの他の方法は廃止されました。
このチュートリアルでは、サービスステータスの開始、再起動、停止、および確認の機能について説明しましたが、公式ページから追加機能を学習することを制限するものではありません。 Linux関連のガイドについては、引き続きFOSSLinuxをフォローしてください。