
特定の状況でシステムの再起動をトリガーするシステムデバイスA(タイプ=ワンショット)があります。
Aが完了した後に開始できる「After = A.service」条件がすでに存在する他のシステムデバイスBとC(タイプ=単純)があります。
A が再起動をトリガした場合、B と C の起動は望ましくありません。私の設定では、Aが完了するとBとCが始まり、再起動するとすぐに終了することが観察されました。
再起動を開始し、BとCにConditionPathExists =! / tmp / foo条件を入れる前にAが一時ファイル(/ tmp / foo)を生成しようとしましたが、このソリューションは機能しないようです。ファイルが作成されると起動します。
この動作をどのように取得できますか?
答え1
これは実際の解決策ではなくハッキングに近いです。再起動後、Aにスリープモードを設定してみることができます。
sleep 60
システムを再起動してもサービスが実行され続けると、他のサービスは起動しないようにし、再起動時にサービスを停止します。
これはシャットダウンが遅れるかどうかはわかりませんが、眠りにつくのに十分な時間を見つけることができるようです。