私が分析を実行しているスーパーコンピュータは、ジョブ管理にSGEを使用し、各ジョブが24時間以上続かないように要求します。そしてこの機能は私に頭痛を与えます。
残念ながら、チェックポイントメカニズムを使用して結果を出力し、スクリプトを再送信するように求められましたqsub myJobScript
。プログラムに関する限り、出力ファイルに名前が付けられていると仮定すると、クロック時間が23:30:00に達したとき(IOジョブに30分を提供します)、一時ファイルを出力することは難しくありませ1.00137/U
ん1.00137/p
。
注:課題を送信すると、いつ開始されるのかわかりません。しかし、起動すると、私のフォルダの下にログファイルがあります。
私の質問は、「新しいファイル」が作成され検出されたときにbashスクリプトを使用して自分のタスクを自動的に送信できることですcrontab
。at
どんなアイデアがありますか?
答え1
5分ごとに簡単なスクリプトを実行しますcron
。あなたのcrontabは次のとおりです。
*/5 * * * * /path/to/your/script
スクリプト擬似コード:
IF (lockfile exists) { exit }
create lockfile
IF (old job has not finished yet) {
remove lockfile
exit
}
IF (new job has already been queued) {
remove lockfile
exit
}
schedule new task
remove lockfile
バラよりシェルスクリプトのロックは正しいですか?(可能な限り競争条件なしで) 適切にロックする方法を学びなさい。