Systemd:サスペンド前のサービスの停止、リカバリ後の再起動

Systemd:サスペンド前のサービスの停止、リカバリ後の再起動

xfluxユーザーセッションマネージャでバックグラウンドデーモン()を実行するシステムサービスがあります。

コンピュータを一時停止して再起動すると時間の計算が混乱し、問題を解決するにはxflux手動で実行する必要があります。systemctl --user restart xflux

サービスが中断される前に自動的に停止され、再開された後に自動的に開始されるようにするにはどうすればよいですか。 (回復時に特定のサービスを自動的に実行する答えを見つけましたが、私が望むものではありません。)

答え1

/lib/systemd/system-sleep/2つの引数を使用してサスペンド時に実行し、引数と再開後に再実行する実行可能ファイルを配置できます。システムpresuspendpostsuspendマニュアルページハッキングだったと言いましたね。


systemd ユニットを使用するには、以下を参照してください。回答エマルジョン。

答え2

古いスレッド - ところで、同様の状況を偶然発見しました。要求されたコードスニペットは次のようになります。

#!/bin/sh
case "$1" in
    USER=username
    post)
    su - $USER --shell=/bin/sh -c '
            export XDG_RUNTIME_DIR=/run/user/$(id -u);
            systemctl --user restart xflux
            '
    ;;
esac

関連情報