完了後x分後にプログラムを実行する

完了後x分後にプログラムを実行する

私の問題はcronの仕事と多少関連していると思いますが、完全にはわかりません。

/home/me/myscript.sh完了するのに不確実な時間(たとえば、10分から1時間)がかかる可能性があるタスクを実行するスクリプト()があるとします。私が望むのは、スクリプトを実行してから完了してから1時間以内に再実行することです。これを達成するために使用できる「スケジューラ」とは何ですか?私はUbuntuを使用しています。

ベストアンサー1

cronこの作業には適していないようです。最後の実行が完了してから1時間後にループを介してwhile実行できます。

#!/bin/sh
while :; do
    some_job_that_takes_a_while
    sleep 3600
done

または、at(1)ジョブが終了したら、1時間以内に次の実行をスケジュールします。

$ cat atat
#!/bin/sh
echo running the job
echo $HOME/atat | at now + 1 hours
$ ./atat
running the job
job 4 at 2015-09-30 17:00
$ date
Wed Sep 30 16:00:19 UTC 2015
$ 

誰かが手動でそのジョブを終了して再開するまで、後続のジョブが実行されないように中断される場合に備えて、完全性チェックまたはジョブtimeout内チェックが必要になる場合があります。

おすすめ記事