systemd-module-load.service
Linuxでは、デフォルトでsystemdサービスの起動方法を理解したいと思います。main()
(systemdから)ルーチンを見ましたが、src/core/main.c
systemdデバイス/サービスへの直接参照が見つかりませんでした。
ベストアンサー1
systemd-modules-load.service
依存関係として指定されますsysinit.target
。次の依存関係を検索/確認できます。
$ systemctl list-dependencies --reverse systemd-modules-load.service
systemd-modules-load.service
● └─sysinit.target
● ├─abrt-ccpp.service
...
sysinit.target
出力は多数の従属単位をアルファベット順にリストするので、必ずしも便利ではありません。少なくともこれはそれがsysinit.target
非常に重要であることを示しています:). systemdのどの部分が始まったのかを尋ねることができますsysinit.target
。この参照があなたの質問に答えると思います。
systemd がシステムを起動すると、すべての依存デバイスがアクティブになります
default.target
(そしてその依存関係に対するすべての依存関係が再帰的にアクティブになります)。通常、これはdefault.target
システムがグラフィカルユーザーインターフェイスで構成されているのか、テキストコンソールでのみ構成されているのかによって、graphic.targetまたはmultiuser.targetのエイリアスです。導入されたユニット間の最小順序を実行するために、上記のようによく知られている複数のターゲットユニットを使用できます。systemd.special(7)。
sysinit.target
- この文の後には、間接依存関係を説明する図が続き、したがって間接依存multi-user.target
関係を示していますgraphical.target
。
参照:man bootup
またはhttps://www.freedesktop.org/software/systemd/man/bootup.html
main()ルーチン(systemdのsrc / core / main.c)を見ましたが、systemdデバイス/サービスへの直接参照が見つかりませんでした。
特定のユニットへの参照が含まれていますsrc/core/
。彼らはSPECIAL_
の定義を通して間接的に行われますsrc/basic/special.h
。これには以下が含まれます。
#define SPECIAL_DEFAULT_TARGET "default.target"