ネットワークサービスが起動時に自動開始するように設定する

Red Hat Enterprise LinuxIntermediate
オンラインで実践に進む

はじめに

このチャレンジでは、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/ コマンドを実行し、NetworkManagersshd でフィルタリングした際、以下のような出力が得られるはずです。これは、両方のサービスが有効化されていることを示しています。

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の動作に対する理解を深め、トラブルシューティング能力を向上させます。

✨ 解答を確認して練習