구성에 After=, Requires= 및 PartOf=가 있지만 종속 시스템 서비스가 시작되지 않습니다.

구성에 After=, Requires= 및 PartOf=가 있지만 종속 시스템 서비스가 시작되지 않습니다.

parent.service에 의존하는 child.service 서비스가 있습니다. Parent.service가 시작되거나 다시 시작될 때마다 child.service가 시작(또는 다시 시작)되기를 원합니다.

지금까지 약 한 시간 동안 U&L Stack Exchange(및 다른 Stack Exchange 사이트의 기타 관련 답변)를 읽었는데 Parent.service가 다시 시작될 때 child.service를 시작하거나 다시 시작할 수 없습니다.

상위 서비스는 문제 없이 시작되고 실행됩니다(예: 조기 종료되지 않음). 이는 /etc/systemd/system/parent.service.d/override.conf에 있는 parent.service 구성입니다.

[Unit]
Description=parent
After=network.target

[Service]
Type=simple
ExecStart=
ExecStart=/usr/bin/parent-start
ExecStartPost=/usr/local/bin/afterparentstart
Restart=always

[Install]
WantedBy=multi-user.target

이는 /etc/systemd/user/child.service에 있는 하위 서비스 구성입니다.

[Unit]
Description=child
Requires=network.target
Wants=nss-lookup.target
Before=nss-lookup.target
After=network.target
Requires=parent.service
PartOf=parent.service
After=parent.service

[Service]
Type=forking
PIDFile=/run/child/child.pid
Restart=always

ExecStart=/usr/local/bin/start-child

# Original file had HUP here but HUP does not trigger closing/reopening the log
# file handle as far as I can tell.
ExecReload=/bin/kill -USR2 $MAINPID

[Install]
WantedBy=multi-user.target
WantedBy=parent.service

"systemctl showparent.service"를 실행하면 ConsistsOf=child.service 관계가 있음을 알 수 있습니다. 그러나 child.service가 실패하거나 수동으로 중지한 후 실행하면 하위 서비스가 시작되지 않았거나 시작하려고 하는 systemctl restart parent.service것으로 관찰됩니다 .systemctl status child.service

저는 Ubuntu 18.04와 systemd 버전 237을 사용하고 있습니다. 내가 여기서 무엇을 놓치고 있는 걸까요? 나는 어찌할 바를 모르고 있다. 고마워요, 케빈

답변1

아아, 달리고 있는데 systemctl daemon-reload그것만으로는 부족해요. 올바른 심볼릭 링크 세트를 생성하려면 하위 시스템 단위를 다시 활성화해야 합니다.

$ systemctl reenable /etc/systemd/user/child.service
Created symlink /etc/systemd/system/multi-user.target.wants/child.service → /etc/systemd/user/child.service.
Created symlink /etc/systemd/system/parent.service.wants/child.service → /etc/systemd/user/child.service.
Created symlink /etc/systemd/system/child.service → /etc/systemd/user/child.service.

관련 정보