私はdebian stableといくつかのクライアントをサーバーインスタンスとして使用して、私のサーバー上で複数のopenvpnインスタンスを実行しています。インスタンスの1つが失敗した場合、systemdはプロセスグループ全体をシャットダウンして再起動するようです。
5月27日 12:09:44 tritone systemd[1]: openvpn@client_uk.service: 基本プロセスが終了しました。コード=終了、ステータス=1/FAILURE 5月27日 12:09:44 tritone systemd[1]: openvpn@client_uk.service デバイスが障害状態に移行しました。 5月27日12:10:01 tritone systemd [1]:client_rhodeへのOpenVPN接続を停止しています... 5月27日12:10:01 tritone systemd [1]:client_ukへのOpenVPN接続を開始しています... 5月27日12:10:01 tritone systemd [1]:client_ukraineへのOpenVPN接続を停止しています... 5月27日12:10:01 tritone systemd [1]:server_udpへのOpenVPN接続を停止しています... 5月27日 12:10:01 tritone systemd[1]: OpenVPN サービスを停止しています... 5月27日 12:10:01 tritone systemd[1]: OpenVPN サービス開始... 5月27日 12:10:01 tritone systemd[1]: OpenVPN サービスを開始します。 ...
IMHO これは人気がなく、重複しています。失敗した単一のサービスを再起動すれば十分です。これは次のシステム構成です/etc/systemd/system/multi-user.target.wants/openvpn.service
。
[単位] 説明=OpenVPNサービス 以降 = network.target [提供する] 種類=使い捨て 終了後に保持=はい ExecStart=/bin/true ExecReload=/bin/true 作業ディレクトリ=/etc/openvpn [インストールする] WantedBy =マルチユーザー。ターゲット
ExecReloadがに設定されている構成を見たことがありますが、kill -HUP $MAINPID
systemctl statusに示されているように、私のサーバーも同じことをしているようです。
Process: 5893 ExecReload=/bin/kill -HUP $MAINPID (code=exited, status=0/SUCCESS)
だから私が理解していないのは、ExecReloadを構成するシステムが実際に異なることを言っている場合、このkillコマンドはどこで定義されていますか?そして、サービスが定義されていても、Type=oneshot
なぜ再起動する必要がありますか?私が見ているファイルが正しいですか?
再起動コマンドはどのように見えるべきですか?プロセスが終了したと見なされるため、Killは機能しません。
編集する:私が見つけたのは、/lib/systemd/system-generators/openvpn-generator
それにもかかわらず、いつ実行されるのか、それとも実行されるのかはまだ明確ではないということです。 selinuxの制限により実際にリンクが生成されないため、ジェネレータが失敗するようです。しかし、このファイルはinit用に使用されているようです。もしそうなら、なぜダミーファイルが生成されるのだろうか。/lib/systemd/system/[email protected]
/etc/systemd/system/multi-user.target.wants/openvpn.service
答え1
CONFIGNAMEを構成ファイル名として使用している場合は、.conf
試してみてください。
systemctl restart [email protected]