network.target에 대한 system.d 서비스 시작 종속성을 network-online.target처럼 작동하는 방법은 무엇입니까?

network.target에 대한 system.d 서비스 시작 종속성을 network-online.target처럼 작동하는 방법은 무엇입니까?

웹 서버를 실행하기 위해 CentOS8(8.1.1911) 최소 설치를 운영하고 있습니다.

/etc/systemd/system/multi-user.target.wants/다음과 같은 일부 서비스

  • httpd.service

  • mariadb.service

  • named.service

  • squid.service

  • sshd.service

  • postfix.service

만 있고 After=network.target없고 network-online.target.

이는 시스템 부팅 시 네트워크가 준비되기 전에 이러한 서비스가 시작되어 수신 대기 포트에 바인딩하지 못하기 때문에 문제가 됩니다. 운 좋게도 sshd바인딩을 계속 재시도하고 네트워크가 온라인 상태가 되면 성공합니다. /var/log/messages결국 성공하기 전에 실패한 바인딩 시도를 볼 수 있습니다 . 그러나 모든 서비스가 재시도되는 것은 아니며 첫 번째 실패 후에는 작동이 중단된 상태로 유지됩니다.

한 가지 해결책은 다음을 사용하여 각 서비스에 Wants/ 에 대한 사용자 정의 매개변수를 추가하는 것입니다 . 즉, 다음을 실행합니다.Aftersystemctl

systemctl edit httpd

그리고 추가하세요

[Unit]
Wants=network-online.target
After=network-online.target

이 작업은 작동하며 이제 서비스는 네트워크가 온라인 상태가 될 때까지 기다리고 재부팅 시 성공적으로 바인딩 및 시작됩니다.

이제 내 질문입니다.

추가하기 위해 각 서비스를 수동으로 편집하고 싶지 않습니다. network-online.target이렇게 하면 유지 관리 문제가 발생하고 향후 설치되는 새 서비스에서 이 단계를 잊어버릴 가능성이 있기 때문입니다. 내가 원하는 것은 Wants/ Afterfor가 있는 모든 서비스 network.target가 마치 기다리고 있는 것처럼 동작하도록 정책을 설정하거나 시스템 전반에 걸쳐 변경을 수행하는 방법입니다 network-online.target.

  • NetworkManager를 기다리기 때문에 문제가 발생합니까 network.target? NetworkManager다른 것을 기다리도록 변경될 수 있나요 ?
  • network.target모두가 기다리면 중단될 수 있는 다른 서비스가 있습니까 network-online.target?
  • 다른 창의적인 솔루션이 있나요?

관련 정보