jobA.sh と jobB.sh の 2 つのジョブがあります。jobA.sh が正常に完了した後に、jobB.sh を開始したい。このためには、jobA.sh のジョブ ID 番号を取得する必要があります。しかし、私のコードの次の部分には問題があります。私のコードは次のエラーを出します。このエラーは、jobB.sh が開始されないことを意味します。コードは、jobA.sh のジョブ ID 番号を取得できませんでした。jobA.sh の jobid 番号を取得するにはどうすればよいですか?
エラー:
送信されたバッチ ジョブ 298784 sbatch: エラー: バッチ ジョブの送信に失敗しました: ジョブの依存関係の問題
コードは jobA.sh を正しく送信しますが、jobB.sh に対して上記のエラーが発生します。
my $jobidA=0;
my $jobs = "sbatch jobA.sh";
system $jobs || die "Error:\n$jobs\nerror";
# I think the following line captures jobid?
($jobs =~ /^Submitted batch job (\d+)/);
# And the following line stores jobid?
my $jobidA = $1;
my $jobs2 = "$path/jobB.sh";
my $jobs2 = "sbatch --dependency=afterok:$jobidA $jobB.sh";
system $jobs2 || die "Error:\n$jobs2\nerror";