다른 시스템 서비스가 다시 시작되면 시스템 서비스는 어떻게 다시 시작됩니까?

다른 시스템 서비스가 다시 시작되면 시스템 서비스는 어떻게 다시 시작됩니까?

나는 데비안에서 252를 시스템화했습니다. systemd 서비스를 systemd-hostnamed.service다시 시작하거나 b.service.

b.service다음 옵션을 사용하면 운이 없습니다.

After=systemd-hostnamed.service
Requires=systemd-hostnamed.service
BindsTo=systemd-hostnamed.service
PartOf=systemd-hostnamed.service

어떻게 해야 하나요?

b.서비스

[Unit]
Description=Avoid NetworkManager sending hostname in DHCP request
Wants=network-pre.target
Before=network-pre.target

[Service]
StartLimitBurst=5
StartLimitInterval=80
RestartSec=15
User=root
ExecStart=/usr/bin/python3 /usr/local/bin/hostname.py

[Install]
WantedBy=sysinit.target

답변1

b.service두 가지 관계가 필요합니다 systemd-hostnamed.service.

  • PartOf=systemd-hostnamed.service멈추면 b.service멈추게 됩니다.systemd-hostnamed.service
  • WantedBy=systemd-hostnamed.service부팅시 시작됩니다 b.service.systemd-hostnamed.service

둘 다 재설정에 사용됩니다.

관계를 추가하는 PartOf=것은 쉽지 않습니다. 섹션 에 이 줄을 추가하기만 하면 됩니다 [Unit].

[Unit]
PartOf=systemd-hostnamed.service

WantedBy=해당 섹션에서만 정의할 수 있지만 [Install]이미 가지고 있습니다 . 처음부터 시작 WantedBy=sysinit.target하려면 이 줄을 변경할 수 있습니다. 그 다음에 .systemd-hostnamed.servicesysinitsudo systemctl {disable,enable} b.service

[Install]
# WantedBy=sysinit.target
WantedBy=systemd-hostnamed.service

b.service부품을 변경하지 않고 유지하려는 경우 [Install]해당 옵션은 Wants=b.service에 추가하는 것입니다 systemd-hostnamed.service. 이는 덮어쓰기로 수행됩니다. 다음을 사용하여 sudo systemctl edit systemd-hostnamed.service설정하고 저장합니다.

$ sudo systemctl edit systemd-hostnamed.service

[Unit]
Wants=b.service

이렇게 하면 배포된 원본 파일을 오염시키지 않고 /etc/systemd/system/systemd-hostnamed.service.d/override.conf추가 관계가 생성됩니다 .systemd-hostnamed.servicesystemd

답변2

오류 레이어.

[ipv4]
dhcp-send-hostname=false

Network Manager는 /etc/NetworkManager/system-connections/의 구성 파일에 있는 dhcp 호스트 이름을 보낼 수 없습니다.

관련 정보