![network.target이 network-online.target처럼 작동하도록 system.d 서비스 시작 종속성을 어떻게 얻습니까?](https://linux55.com/image/170788/network.target%EC%9D%B4%20network-online.target%EC%B2%98%EB%9F%BC%20%EC%9E%91%EB%8F%99%ED%95%98%EB%8F%84%EB%A1%9D%20system.d%20%EC%84%9C%EB%B9%84%EC%8A%A4%20%EC%8B%9C%EC%9E%91%20%EC%A2%85%EC%86%8D%EC%84%B1%EC%9D%84%20%EC%96%B4%EB%96%BB%EA%B2%8C%20%EC%96%BB%EC%8A%B5%EB%8B%88%EA%B9%8C%3F.png)
웹 서버를 실행하기 위해 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
.After
systemctl
systemctl edit httpd
그리고 추가하세요
[Unit]
Wants=network-online.target
After=network-online.target
이 작업은 작동하며 이제 서비스는 네트워크가 온라인 상태가 되어 재부팅 시 성공적으로 바인딩 및 시작될 때까지 기다립니다.
이제 내 질문입니다.
추가하려는 각 서비스를 수동으로 편집하고 싶지 않습니다. network-online.target
이렇게 하면 유지 관리 문제가 발생하고 향후에 설치되는 새 서비스에서 이 단계를 잊어버릴 가능성이 있기 때문입니다. 내가 원하는 것은 정책을 설정하거나 시스템 전반에 걸쳐 변경을 수행하는 방법이며 Wants
/ After
for 가 있는 모든 서비스 network.target
는 마치 기다리는 것처럼 동작합니다 network-online.target
.
NetworkManager
아직 기다려야 하는데 문제가 발생하는 걸까요network.target
?NetworkManager
대신 다른 것을 기다려 주 시겠습니까 ?network.target
모두 기다리면 중단될 수 있는 다른 서비스가 있습니까network-online.target
?- 다른 창의적인 솔루션이 있나요?