나는 원해요새로고침(다시 시작하는 것이 아닙니다!) 이벤트가 발생했을 때 서비스 집합입니다.
nginx
예를 들어 SSL 인증서를 업데이트하면 이를 사용하는 모든 서비스가 다시 로드 되기를 원합니다 postfix
. 또한 특정 서버의 어떤 서비스가 SSL 인증서를 사용하는지 기억하고 싶지 않습니다. 구성할 때 그룹화하면 충분합니다.
.service
반면에 패키지에서 제공하는 파일을 변경하는 것은 피하고 싶습니다 . 업데이트하는 동안 수동 개입이 필요하기 때문입니다.
어떻게 해야 하나요?
다음과 같은 옵션이 있습니다.요청 시 일련의 서비스를 중지합니다., 그러나 이로 인해 1~2초 동안 액세스할 수 없게 되거나 더 악화될 수 있습니다. 문제가 해결될 때까지 그대로 유지될 수 있습니다. 나는 그것을 감당할 수 없습니다.
답변1
/etc/systemd/system/ssl-reload.target
다음 콘텐츠를 사용하여 만듭니다.
[Unit]
Description=Services which need reloaded with SSL certs are updated.
PropagatesReloadTo=nginx postfix
그런 다음 다른 파일을 만듭니다./etc/systemd/system/ssl-reload.path
[Unit]
Description=Restart services which use SSL when the cert directory changes
[Path]
PathChanged=/path/to/your/ssl/certs/dir
[Install]
WantedBy=multi-user.target
그 다음에:
systemctl enable ssl-reload.path
systemctl start ssl-reload.path
하지만 SSL 디렉토리에서 무언가를 변경한 후에는 필요한 서비스가 자동으로 다시 로드되어야 합니다.
자동 동작을 원하지 않으면 이 .path
파일을 사용하지 말고 systemctl reload ssl-reload.target
SSL 파일을 변경한 후 수동으로 실행하십시오.