私はsystemdを読み、デバイスユニットファイルに移動しました。
マニュアルページによると:
systemd
udev
デバイスユニットは、「systemd」タグ付きのすべてのカーネルデバイス(デフォルトではすべてのブロックとネットワークデバイス、およびその他のデバイス)に対して動的に作成されます。これは、デバイスと他のデバイス間の依存関係を定義するために使用できます。udev
デバイスにタグを付けるには、ルールファイルで "TAG+="systemd"" を使用します。リソースをudev
参照してくださいudev(7)
。
/lib/systemd/system
私はDebian Wiki(Debian Wiki)に指定されているように見つけました:
Debian が提供するユニットファイルは /lib/systemd/system ディレクトリにあります。
しかし、これらはどこにもありません。
しかし、
~$ sudo systemctl list-units --type=device
デバイスユニット(ディスク、サウンドカード、イーサネットコントローラなど)を表示するかどうか
Debian でデバイス単位のファイルがどこにあるかを知りたいです。それともこれが存在しない場合、なぜ存在しないのか、systemdはDebianでこれらのユニットをどのように処理しますか?
すべての説明/コメント/洞察力を高く評価します。
答え1
その答えはあなたが引用した最初の文にあります。 「systemd はデバイス単位を動的に生成します」。単に「スタート」ではなく「作成」とされています。 udevデーモンと統合すると、カーネルがudevに新しいデバイスについて知らせると、.deviceデバイスはすぐに合成されます。 (同様にデバイスが消えると、.deviceユニットも消滅します。)
これは、ユニットファイルではなく動的に生成されたユニット自体です(したがって、systemd内のメモリにのみ存在します)。したがって、これは基本的に動的に生成された.scope単位または一時的な.service単位(ジェネレータに基づいて生成された.mount単位ファイルとは異なり/etc/fstab
)と同じメカニズムです。
したがって、ディスクのどこにもユニットファイルはありません。systemctl status some.device
ユニットファイルを参照systemctl show some.device
せずにFragmentPath
。