システムサービスExecStartPreラインでブロックコマンドを処理するには?

システムサービスExecStartPreラインでブロックコマンドを処理するには?

マイバックアッププログラム(btrbk)がバックアップをマイサーバーに送信する前に、VPN接続を開く必要があります。電話をかけて手動でVPN接続を開くと効果的です。

openvpn --config VPNConfig.ovpn

これで、バックアップを開始する必要があるシステムサービス(システム時間に応じて毎日トリガーされます)を作成しました。前提条件としてVPNに接続する必要があります。

ExecStartPre=openvpn --config VPNConfig.ovpn

サービスファイルの行。残念ながら、このopenvpn呼び出しはブロックされ、実際のバックアッププロセスが実行されるのをブロックします。

この問題を解決するための最良の方法は何ですか?

よろしくお願いします:)

ベストアンサー1

ExecStartPre=OpenVPN接続用に別々のサービスを作成する必要があり、それを使用する代わりにBefore=バックアップサービスを開始するように指定し、必要に応じてそれを利用する必要があります。

バックアップ用にVPN接続を開始する場合バックアップが完了したら停止します。、VPNサービスをPartOf=バックアップサービスとして宣言できます。

バックアップが完了した後もVPNを引き続き実行したり、実行する必要がある場合は、VPNサービスをRequiredBy=バックアップサービスとして指定できます。

後でバックアップVPNソリューションを変更する必要がある場合は、実際のバックアップデバイスまたはそのタイマーに触れることなく、VPNサービスデバイスを簡単に再構築または交換できます。

その後、VPNサービスからパブリックエントリを省略するため、WantedBy=multi-user.targetこれを開始する唯一の方法は依存関係または明示的なコマンドを使用することですsystemctl start

アパーチャサイエンスの広告スローガンを適用し、今ユニットについて考えています。

おすすめ記事