キューに入れられたジョブが によって提示された順序で実行されると期待できるかどうかはわかりませんでしたがshowq
、さらに調査した結果、確かにそのように見えます。
によって出力されるキューshowq
の形式は次のとおりです。
ACTIVE JOBS--------
[table headers]
[listing of active jobs]
IDLE JOBS--------
[table headers]
[listing of idle jobs]
BLOCKED JOBS----------
[table headers]
[listing of blocked jobs]
この形式に基づいて、次の bash スクリプトを思いつき、ジョブの ID を指定して、キューのアイドル セクションでジョブの場所を見つけました。
job=$1
idlestart=`showq | grep "IDLE JOBS" -n | cut -d: -f1`
jobline=`showq | grep -n $job | cut -d: -f1`
place=`expr $jobline - $idlestart - 2`
echo "Idle Jobs section starts at line $idlestart"
echo "Job $job at line $jobline"
echo "Place in queue: $place"
出力例:
$ ./placeinq 6565618
Idle Jobs section starts at line 343
Job 6565618 at line 387
Place in queue: 42