コマンド出力に基づいてサービスを開始するにはどうすればよいですか?

コマンド出力に基づいてサービスを開始するにはどうすればよいですか?

他のサービスが完了したら、特定のサービスを開始したいと思います。完全ここです。特に他のサービスを開始する前に、OpenVPNサービスを開始して完了する必要があります。

私は通常使用しましたが、After=OpenVPNでは期待どおりに機能しませんでした。つまり、起動直後に設定が完了する前に開始されたことを意味します。

解決策は、私のサービスの開始をスクリプトの出力または終了状態(*)に制限することでした(またはそのスクリプトによって生成されたファイルの存在を制限すること)。

systemdを使用してこれを達成できますか?


(*)このスクリプトは、VPNトンネルを介してのみ接続できることが知られているホストをpingし、接続が完了したらシャットダウン(またはファイルを削除)します。

ベストアンサー1

サービスユニットを設定できます。

Type=notify
NotifyAccess=all

初期化中にOpenVPNが開始する最後のスクリプト(またはそのサブスクリプト)を作成します(必要なログ出力を待ってから)systemd-notify

おすすめ記事