サービスの起動動作の管理:有効化と無効化
このステップでは、システム起動時にサービスが自動的に起動するかどうかを設定する方法を学びます。これは、システム再起動後に必要なサービスが手動介入なしで利用可能になるようにするために重要です。
サービスの起動設定の理解
サービスは、起動時に自動的に起動するように設定(有効化)することも、手動で起動する必要があるように設定(無効化)することもできます。この設定は、サービスの現在の実行状態とは別のものです。
サービスが有効化されているか確認する
-
SSHサービスが起動時に自動的に起動するように設定されているかを確認するには、次のコマンドを実行します。
systemctl is-enabled sshd
出力は「enabled」(起動時に自動起動)または「disabled」(起動時に自動起動しない)のいずれかになります。
サービスを無効化する
サービスを無効化すると、起動時に自動的に起動しないように設定されます。
-
SSHサービスを無効化します。
sudo systemctl disable sshd
シンボリックリンクが削除されたことを示すメッセージが表示されるはずです。
Removed /etc/systemd/system/multi-user.target.wants/ssh.service.
-
サービスが現在無効化されていることを確認します。
systemctl is-enabled sshd
出力は「disabled」になるはずです。
-
サービスを無効化しても、現在実行中の場合は停止しません。現在の状態を確認します。
systemctl status sshd
次回の起動時にサービスが無効化されていても、現在はまだアクティブな場合があります。
サービスを有効化する
サービスを有効化すると、起動時に自動的に起動するように設定されます。
-
SSHサービスを再度有効化します。
sudo systemctl enable sshd
シンボリックリンクが作成されたことを示すメッセージが表示されるはずです。
Created symlink /etc/systemd/system/multi-user.target.wants/ssh.service → /lib/systemd/system/ssh.service.
-
サービスが現在有効化されていることを確認します。
systemctl is-enabled sshd
出力は「enabled」になるはずです。
複合コマンド
有効化/無効化と起動/停止を1つのコマンドで行うこともできます。
-
サービスを無効化して停止するには、次のコマンドを実行します。
sudo systemctl disable --now sshd
-
サービスを有効化して起動するには、次のコマンドを実行します。
sudo systemctl enable --now sshd
サービスの起動設定の参照ファイルを作成する
学んだコマンドを含む参照ファイルを作成しましょう。
-
プロジェクトディレクトリに service_boot.txt
という名前のファイルを作成します。
echo "Service Boot Configuration Commands:" > ~/project/service_boot.txt
echo "Check if a service is enabled: systemctl is-enabled <service_name>" >> ~/project/service_boot.txt
echo "Enable a service to start at boot: sudo systemctl enable <service_name>" >> ~/project/service_boot.txt
echo "Disable a service from starting at boot: sudo systemctl disable <service_name>" >> ~/project/service_boot.txt
echo "Enable and immediately start a service: sudo systemctl enable --now <service_name>" >> ~/project/service_boot.txt
echo "Disable and immediately stop a service: sudo systemctl disable --now <service_name>" >> ~/project/service_boot.txt
-
ファイルの内容を確認します。
cat ~/project/service_boot.txt
このステップでは、サービスの有効化と無効化によってサービスの起動動作を管理する方法を学びました。これは、システム起動時に自動的に起動するサービスを設定するために重要であり、必要なサービスが利用可能になり、不要なサービスがリソースを消費しないようにすることができます。