
バッチモードでいくつかのコマンドを実行しています。既存のコマンドが完了したら追加の操作を実行する必要があるため、コマンドが完了するまで待つ必要があります。
たとえば、
bsub -q gui -I calibre -drc -batch
wait
waitコマンドに記載されているジョブのプロセスIDを取得する方法、または既存のコマンドが終了するのを待つ他の代替案を教えてください。
答え1
この試み
bsub -q gui -I calibre -drc -batch & pid=$!
wait ${pid}
ここにpid
変数があります。どんな名前でも指定できます。
答え2
組み込み待つコマンドはすでに操作を実行する必要があります。バックグラウンドで実行されてbsub
も完了するまで待つ必要があります。bsub
ただし、必要でない場合は、wait
PIDを取得するためにまたはを使用してから、「完了するまで待機」ルーチンを直接作成できます。pgrep bsub
ps -eo pid,comm | grep bsub
答え3
$ {pid}の親コマンドpid = $ !waitを試しましたが、エラーが発生しました。
「待つ引数が多すぎます。」
調査し、可能であれば解決策を提示してください。
ありがとうございます
答え4
pgrep bsubも使用する上記のコマンドを試してから、pgrep bsubがまだエラーを受け取るのを待ちます。
「待つ引数が多すぎます。」
調査し、可能であれば解決策を提示してください。
ありがとうございます