システムサービスセットを再ロードする方法は?

システムサービスセットを再ロードする方法は?

欲しいリフレッシュ(再起動するわけではありません!)イベントが発生したときのサービスのセットです。

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ファイルを変更して手動で実行してください。

おすすめ記事