システムサービスをオーバーライドするときにExecStop =実行をコマンドする方法は?

システムサービスをオーバーライドするときにExecStop =実行をコマンドする方法は?

システムサービスに機能を追加したい([Eメール保護])オーバーレイファイルを使用します。私が経験している問題は、常に古い関数「内部」、つまり内で実行するために新しい関数が必要であるということです。実行開始=そして前に実行が停止しました =元のサービスの(以前の機能で作成されたディレクトリにファイルシステムをマウントし、そのディレクトリを削除する前にマウント解除したためです)

前者は使えるので簡単実行開始後 =正しい注文を保証します。しかし、一つではありません。実行が停止する前 =、ただ使うなら実行が停止しました =、順序は保証されず、実際に結果が間違っています。

解決策はありますか?

答え1

解決策はありますか?

明示的に並べ替える必要がある場合は、次のことができます。変えるExecStop既存の機能がオーバーライドされました。たとえば、元のユニットファイルに次のものが含まれているとします。

ExecStop=/path/to/script1

直接保証により、次のことができます。

ExecStop=
ExecStop=/path/to/my_additional_script
ExecStop=/path/to/script1

消去ExecStop=は既存の項目をすべて消去します。

あるいは、ExecStop適切な依存関係(/// etc)を使用して、ロジックを別々の単位として実装することもできますRequiresBeforeAfter

関連情報