systemd의 대상 단위가 어떻게 작동하는지 더 잘 이해하려고 노력하고 있지만 graphic.target이 "원하는" 것이 무엇인지 혼란스럽습니다.
ls -l
내부로 실행하면 /etc/systemd/system/graphical.target.wants
다음이 표시됩니다.
total 0
lrwxrwxrwx 1 root root 43 Jul 19 16:50 accounts-daemon.service -> /lib/systemd/system/accounts-daemon.service
ls -l
내부로 실행하면 /lib/systemd/system/graphical.target.wants
다음이 표시됩니다.
total 0
lrwxrwxrwx 1 root root 39 Jul 12 11:28 systemd-update-utmp-runlevel.service -> ../systemd-update-utmp-runlevel.service
이 파일 /lib/systemd/system/graphical.target
에는 다음이 포함됩니다.
[Unit]
Description=Graphical Interface
Documentation=man:systemd.special(7)
Requires=multi-user.target
Wants=display-manager.service
Conflicts=rescue.service rescue.target
After=multi-user.target rescue.service rescue.target display-manager.service
AllowIsolate=yes
마지막으로 실행하면 다음과 같은 결과 systemctl show --property "Wants" graphical.target
를 얻습니다.
Wants=hddtemp.service ureadahead.service speech-dispatcher.service systemd-update-utmp-runlevel.service grub-common.service ntp.service lxdm.service accounts-daemon.service ondemand.service
"원함"의 권위 있는 출처는 무엇입니까?
답변1
유닛 파일의 유효한 종속성은 여러 소스로 구성됩니다. 의 경우 graphical.target
다음과 같습니다.
Wants=
파일 자체의 명령문graphical.target
(유닛 파일 자체는/lib
, 또는/run
아래의 다양한 디렉토리에 배치될 수 있으며/etc
해당 순서대로 서로 매핑됩니다)Wants=
소위 드롭인 파일의 명령문$PREFIX/systemd/system/graphical.target.d/*.conf
(여기서 PREFIX는 위와 같고 동일한 이름을 가진 드롭인 파일은 서로 독립적입니다)특수 디렉토리에 있는 원하는 유닛에 대한 Symlink입니다
$PREFIX/systemd/system/graphical.target.wants
(역시 위와 같이 접두사가 붙습니다).
이러한 모든 소스의 종속성은 단순히 함께 추가되며, 또한 많은 암시적 종속성이 있습니다(읽기).systemd.target(5)더 알아보기).
따라서 유효한 종속성을 보려면 명령을 사용하는 것이 좋습니다 systemctl show-property -p Wants
. 안타깝게도 어떤 종속성이 어느 위치에서 왔는지 확인할 수 있는 방법이 없습니다. 종속성을 제거하려면 이를 수동으로 확인해야 합니다.