私はcrontabの「より愚かな」版がほしいと思います。与えられた時間だけ実行され、一時停止後は追いつかない。つまり、crontabによってサービスがトリガーされる必要があり、システムが停止した場合、再開直後にサービスがトリガーされます。それが私が望んでいないことです。
私はsystemd.timerユニット(crontabの代わりに)とマシンが一時停止しようとしたときにタイマーユニットを無効にし、システムが再開されたときにタイマーユニットを再度有効にする対応する-sleep.serviceを書くことでこの問題を解決しました。先週末の最後の更新以降、突然crontabのように動作します。タイマー装置内部で指定された時間でなくても、タイマー装置の起動時にタイマー装置がターゲットを開始する。
ログを確認しましたが、-sleep.serviceデバイスが操作を実行し、タイマーデバイスを無効にしました。 (タイマーデバイスには無効と再アクティブ化の外観も表示されます。)しかし、前述したように、タイマーデバイスは「追いつく」ことを望まない。私はそれが与えられた時間だけそのユニットをトリガーし、他のものは何も実行したくありません!
とても感謝しています!
ドーム様こんにちは
# horcrux-sleep.service
[Unit]
Description=horcrux sleep hook
Before=sleep.target
Before=shutdown.target
StopWhenUnneeded=yes
RefuseManualStart=yes
[Service]
Type=oneshot
RemainAfterExit=yes
ExecStart=/usr/bin/systemctl stop horcrux.timer
ExecStop=/usr/bin/systemctl start horcrux.timer
[Install]
WantedBy=sleep.target
Also=horcrux.timer
# horcrux.timer
Jun 27 06:51:15 citadel systemd[1]: Stopped Schedule for backup.
[Unit]
Description=Schedule
[Timer]
OnCalendar=Mon *-*-* 20..21:00:00
OnCalendar=Tue..Thu *-*-* 17..21:00:00
OnCalendar=Fri *-*-* 17..23:00:00
OnCalendar=Sat *-*-* *:00:00
OnCalendar=Sun *-*-* 00..21:00:00
## Spätschicht
#OnCalendar=Mon..Wed,Fri *-*-* 7..11:00:00
## Frühschicht am Donnerstag
#OnCalendar=Thu *-*-* 13..16:00:00
## Frühschicht täglich
#OnCalendar=Mon..Fri *-*-* 7..11:00:00
## freie Tage
#OnCalendar=Mon..Fri 9..11,14..16,0..5:00:00
## Urlaub / Krankheit
#OnCalendar=*-*-* *:00:00
Persistent=1
AccuracySec=1sec
[Install]
WantedBy=timers.target
Also=horcrux-sleep.service
ベストアンサー1
おそらく絶え間ない妨害によるものかもしれません。 https://www.freedesktop.org/software/systemd/man/systemd.timer.html#Percious=
永続性設定 = false