
昨年末にsystemdタイマーが突然発火しなくなるという事象がありました。タイマーに強制終了の設定をしていなかったことが原因の1つです。何らかの理由で実行中のスクリプトから終了のシグナルがタイマーに届かないときに強制終了の設定がないとタイマーのActiveな状態が維持されて、次回のタイマーが発火しないのです。このためserviceユニットファイルの[Service]セクションにType=oneshotを指定したときは、併せてTimeoutStartSec=タイムアウト時間とKillMode=control-groupを設定することが望ましいそうです。
ちなみにTimeoutStopSec=は、対象のスクリプトが実行中のときにsystemctl restart や stop を実行した場合に、安全に処理を終了するための待ち時間です。デフォルトはTimeoutStopSec=90sです。

コメントを残す