LinuCレベル2 システムの起動とLinuxカーネル 問36
システムの起動とLinuxカーネル/システム起動のカスタマイズsystemdを採用したシステムにおける、/run/systemd/system/ディレクトリの説明として適切なものはどれか。
当サイトのオリジナル問題(LinuCレベル2の出題範囲「システムの起動とLinuxカーネル」に対応。実際の試験問題ではありません)
- A再起動すると内容が消える実行時の置き場で、systemctlに--runtimeを付けた変更もここに書かれる
- Bパッケージが提供するユニットファイルの置き場で、管理者はここを直接編集しないことが推奨される
- C管理者が恒久的に変更したユニットファイルを置く場所で、他のどのディレクトリよりも優先される
- Dsystemd本体やsystemd-で始まるデーモンの実行ファイルの置き場で、パッケージ更新時に置き換わる
正解:A
解説
/run/systemd/system/はtmpfs上の/run配下にあるため、置いたユニットファイルや設定は再起動すると消えます。systemctl enableなどに--runtimeを付けると、変更は/etcではなく/run配下に書かれ、次回の起動までの一時的な変更になります。ユニットの検索順序では、/etc/systemd/system/より優先度が低く、/usr/lib/systemd/system/より優先度が高い位置にあります。一時的に設定を試したいときに使う場所です。なお、ジェネレータが生成するユニットは/run/systemd/generator/等の別のディレクトリに置かれます。
選択肢ごとの解説
- A正しい。/run配下はtmpfsのため再起動で消え、--runtimeを付けたsystemctlの変更もこの配下に書かれます。
- B誤り。パッケージが提供するユニットファイルの置き場は/usr/lib/systemd/system/(Debian系では/lib/systemd/system/も)です。
- C誤り。管理者が恒久的に変更したユニットを置くのは/etc/systemd/system/です。/run/systemd/system/はそれより優先度が低くなります。
- D誤り。systemd本体の関連プログラムの多くは/usr/lib/systemd/に置かれます。/run/systemd/system/は実行ファイルの置き場ではありません。