systemd 대상이 원하는 것이 무엇인지 이해하려고 노력하십시오.

systemd 대상이 원하는 것이 무엇인지 이해하려고 노력하십시오.

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. 안타깝게도 어떤 종속성이 어느 위치에서 왔는지 확인할 수 있는 방법이 없습니다. 종속성을 제거하려면 이를 수동으로 확인해야 합니다.

관련 정보