プロセスがまだ実行されていても、systemdタイマーを実行してください。

プロセスがまだ実行されていても、systemdタイマーを実行してください。

それ確認済み以前の実行が完了していない場合、systemdタイマーは.serviceを起動しません。ただし、不明な理由により、Type=oneshotコンピュータの一部のバックアッププロセスがブロックされます(まだアクティブであるように見え、競合状態になる可能性がありますが、関連性がない可能性があります)。

systemdタイマーが実行されている場合、OnCalendar=hourly以前の実行で何が起こったかに関係なく、毎回実行するように指示する方法はありますか?これにより、バックアップが実行され、必要なすべての項目が誤って中断されることはありません。

答え1

システムタイマーがOnCalendar = hourlyで実行されている場合は、以前の実行で何が起こったかに関係なく、毎回実行するように指示する方法はありますか?これによりバックアップが実行され、誤って必要なすべてのアイテムが中断されることはありません。

これらのタイマーは実際にタスクを実行して実行されますが、アクティブにしたいバックアップサービスを「再起動」しません。これは、まだサービスが実行されている場合でも、「アクティブ」または「アクティブ」トリガー状態を持っているためです。

  • この動作が正しいことを明確にするには、次の手順を実行します。
    1. 問題のサービスがすでに実行されている間に実際に同じサービスの別のインスタンスを起動した場合はどうなりますか?
      2つのバックアップサービスを同時に実行し、互いにファイルを並列に上書きすることは許可されていますか?
      そうではありませんか?
    2. ボタン「A」のおかげで、電球がすでに「オン」になっているときに、ボタン「B」を使って電球を「オン」しようとするのです。もちろん何の効果もありません。

したがって、タイマーがサービスを「再起動」するようにするには、バックアップサービスがアクティブ状態を失うまでに完了するのに1時間未満かかっていることを確認してください。RuntimeMaxSec=man systemd.service説明を参照してください。または、バックアップに時間がかかる場合は、長いタイマーを使用してください。半分または不完全なバックアップはまったくバックアップしないのと同じです。そうですか?

より良い回答を得るために、「Type = oneshot」バックアップサービスファイルの内容を投稿してください。とにかく変更が必要だと思うからです。

関連情報