Debian では、次/usr/lib/systemd/*/*.service
のような systemd サービスがいくつかインストールされます。
/usr/lib/systemd/user/org.gnome.Evince.service
/usr/lib/systemd/user/pulseaudio.service
/usr/lib/systemd/user/gpg-agent.service
他のサービス(実際にはより多く)があります。/lib/systemd/*/*.service
/lib/systemd/system/networking.service
/lib/systemd/system/sddm.service
/lib/systemd/system/apache2.service
/lib/systemd/system/dm-event.service
/lib/systemd/system/ModemManager.service
フォルダがあります/lib/systemd
:
/lib/systemd/network/
/lib/systemd/system/
/lib/systemd/system-generators/
/lib/systemd/system-preset/
/lib/systemd/system-shutdown/
/lib/systemd/system-sleep/
/usr/lib/systemd
:
/usr/lib/systemd/boot/
/usr/lib/systemd/catalog/
/usr/lib/systemd/scripts/
/usr/lib/systemd/system/
/usr/lib/systemd/user/
/usr/lib/systemd/user-environment-generators/
/usr/lib/systemd/user-generators/
/usr/lib/systemd/user-preset/
それでは、これら2つのディレクトリの違いは何ですか?システム文書/lib/systemd
まったく言及されていません。
ディストリビューションですか、それともアップストリームソフトウェアが選択されていますか?たとえば、Apacheの場合ダーバン使用/lib/systemd/system/apache2.service
、しかし、ルートを構築する /usr/lib/systemd/system/apache.service
(buildrootも使用されているようです/lib/systemd
)。
どのような方法で影響を受けましたか?/usr
マージ?
みんな興味があるだけです。/usr/lib/systemd/systemと/etc/systemd/systemの違い(トピックをタッチします。表示されるパスUnits of installed packages
はディストリビューションによって異なります。 Centos 7は/usr/lib/systemd/system
Debianを使用します/lib/systemd/system
が、Debianは両方を使用します。
ベストアンサー1
ソースが質問に答え、実際に影響を受けました。/usr
マージ、望むよりLOOKUP_PATHS_SPLIT_USR
:
src/portable/portable.c:we force looking inside of /lib/systemd/system/ for units too, as we might be compiled for a split-usr system but the image might be a legacy-usr one
/* Then, send unit file data to the parent (or/and add it to the hashmap).
* For that we use our usual unit discovery logic. Note that we force looking
* inside of /lib/systemd/system/ for units too, as we might be
* compiled for a split-usr system but the image might be a legacy-usr one. */
r = lookup_paths_init(&paths, UNIT_FILE_SYSTEM, LOOKUP_PATHS_SPLIT_USR, where);
(読みやすくするためにコメント形式を再指定)
src/share/pathfind.c: "/lib/systemd/system"
if フラグを追加LOOKUP_PATHS_SPLIT_USR
case UNIT_FILE_SYSTEM:
add = strv_new(
/* If you modify this you also want to modify
* systemdsystemunitpath= in systemd.pc.in! */
...
"/usr/local/lib/systemd/system",
SYSTEM_DATA_UNIT_PATH,
"/usr/lib/systemd/system",
STRV_IFNOTNULL(flags & LOOKUP_PATHS_SPLIT_USR ? "/lib/systemd/system" : NULL),
...
src/core/systemd.pc.in:/usr/lib/systemd/system
そして/lib/systemd/system
systemdsystemunitpath=${systemdsystemconfdir}:/etc/systemd/system:\
/run/systemd/system\:/usr/local/lib/systemd/system:${systemdsystemunitdir}\:
/usr/lib/systemd/system:/lib/systemd/system
(より読みやすくするためにフォーマットを変更しました)
送信メッセージのソース:799b210267("パス照会: 分割-usr デバイスディレクトリを選択的に強制チェックするためのフラグを追加"):
When we look into a portable service image it might contain the unit
files in split-usr directories rather than merged-usr directories as on
the host. Hence, let#s add a flag that checking all dirs can be forced.