network.target이 network-online.target처럼 작동하도록 system.d 서비스 시작 종속성을 어떻게 얻습니까?

network.target이 network-online.target처럼 작동하도록 system.d 서비스 시작 종속성을 어떻게 얻습니까?

웹 서버를 실행하기 위해 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실패한 바인딩 시도를 볼 수 있습니다. 그러나 모든 서비스가 첫 번째 실패 후 재시도되어 중단된 상태로 유지되는 것은 아닙니다.

한 가지 해결책은 ie run을 사용하여 각 서비스에 대한 사용자 정의 매개변수를 추가하는 것입니다 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?
  • 다른 창의적인 솔루션이 있나요?

관련 정보