はじめに
このチャレンジでは、systemdベースのシステムにおいて、サービスがシステム起動時に自動的に開始されるように設定する方法を学びます。通常は systemctl コマンドが使用されますが、コンテナ環境など、このコマンドが利用できない環境も存在します。ここでは、systemctl が内部で行っているメカニズム、つまりシンボリックリンクの作成方法を学習します。この知識は、特に制限のある環境で重要なサービスを有効化する必要があるシステム管理者にとって不可欠です。
ネットワークサービスが起動時に自動開始するように設定する
説明
RHEL 9では、従来の network.service ではなく NetworkManager.service が一般的に使用されます。このチャレンジ環境では、ユニットファイルは必要なパスに既に配置されているため、手動でのシンボリックリンク作成作業に集中できます。あなたのタスクは、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の動作に対する理解を深め、トラブルシューティング能力を向上させます。



