1200秒間寝るスクリプトを書いた。このスクリプトは1分ごとにcronを介して実行する必要があります。
スクリプトが1200秒間一時停止しても、cronは新しいプロセスを開始しますか?
それでは、スクリプトがしばらく実行されないようにsleepコマンドをcronに渡すようにどのように設定する必要がありますか?
お時間をいただきありがとうございます、NaLa
答え1
Cronは設定どおりに新しいバージョンをリリースし続けます。子には興味がありません。たとえば、同じスクリプトを実行していますが、毎分異なるダウンロードを受け取ることができます。
cronに延期するように指示することはできません。これを達成する方法には少なくとも2つが知られている。どちらにも欠点があります。
(1) クローンを使用しないでください。コマンドを介してスクリプト自体を呼び出すようにしますat
。echo myScript | at 'now + 1 minute'
(2)スクリプトがすでに実行されているコピーがあることを検出し、タスクを実行する前に終了するようにします。これにはロックファイルを使用できます。
どちらの場合も、ロックファイルを開始または解放する前にスクリプトが中断されると、ユーザーが介入するまでスクリプトは実行されません。この問題を解決する方法がありますが、より複雑になります。