はじめに
このチャレンジでは、systemdベースのシステムにおいて、システム起動時にサービスが自動的に開始されるように設定する方法を学びます。通常は systemctl コマンドが使用されますが、コンテナ環境など、このコマンドが利用できない環境も存在します。ここでは、systemctl が内部で行っているメカニズム、つまりシンボリックリンクの作成方法を学びます。この知識は、特に制限のある環境で重要なサービスを有効化する必要があるシステム管理者にとって不可欠です。
このチャレンジでは、systemdベースのシステムにおいて、システム起動時にサービスが自動的に開始されるように設定する方法を学びます。通常は systemctl コマンドが使用されますが、コンテナ環境など、このコマンドが利用できない環境も存在します。ここでは、systemctl が内部で行っているメカニズム、つまりシンボリックリンクの作成方法を学びます。この知識は、特に制限のある環境で重要なサービスを有効化する必要があるシステム管理者にとって不可欠です。
このRHEL 9システムでは、ネットワークは従来の network.service ではなく NetworkManager.service によって管理されています。サービスの起動時自動開始を有効にするには、ターゲットの wants ディレクトリからサービスのユニットファイルへのシンボリックリンクを作成する必要があります。今回のタスクでは、multi-user.target 内に必要なシンボリックリンクを作成することで、NetworkManager および sshd サービスを手動で有効化します。
NetworkManager サービスが起動時に自動開始するように有効化してください。sshd サービスが起動時に自動開始するように有効化してください。/etc/systemd/system/multi-user.target.wants/ ディレクトリ内に NetworkManager.service のシンボリックリンクを作成する必要があります。リンク先は /usr/lib/systemd/system/NetworkManager.service にあるソースユニットファイルである必要があります。/etc/systemd/system/multi-user.target.wants/ ディレクトリ内に sshd.service のシンボリックリンクを作成する必要があります。リンク先は /usr/lib/systemd/system/sshd.service にあるソースユニットファイルである必要があります。sudo 権限で行う必要があります。~/) から実行してください。このチャレンジを完了した後、ls -l /etc/systemd/system/multi-user.target.wants/ コマンドを実行し、NetworkManager と sshd でフィルタリングした結果は、以下のようになるはずです。これは、両方のサービスが有効化されていることを示しています。
lrwxrwxrwx. 1 root root 46 Jul 10 12:00 NetworkManager.service -> /usr/lib/systemd/system/NetworkManager.service
lrwxrwxrwx. 1 root root 36 Jul 10 12:01 sshd.service -> /usr/lib/systemd/system/sshd.service
このチャレンジでは、systemdベースのLinuxディストリビューションにおいて、起動時にサービスを開始させるための基本的なメカニズムを学びました。systemctl enable コマンドが行う動作を再現するために、NetworkManager および sshd サービスのシンボリックリンクを手動で作成しました。このスキルは、標準的なツールが利用できない環境でのシステム管理において非常に価値があり、systemdの動作に対する理解を深め、トラブルシューティング能力を向上させます。