I am using a cluster. I will use qsub command to distribute my job, what I want is I can get back the job id so that I can monitor the job.
Basically, I want some thing like this:
#!/bin/bash
JOBID=$( qsub job1 )
# Monitoring base on $JOBID
I found a page http://wiki.ibest.uidaho.edu/index.php/Tutorial:_Submitting_a_job_using_qsub, and it talks about a variable PBS_JOBID
but I don't know how to use it. Does anyone know how to do it?
(My solution now is jobID='qsub task | cut -d ' ' -f 3'
)
qsub
has a very predictable output. Many automated submission systems (such as Grid interfaces) simply parse the output from qsub
, looking for the jobid.
An example of parsing is available from the BLAHP project (European grid middleware).
jobID=`${pbs_binpath}/qsub $bls_tmp_file` # actual submission
...
# The job id is actually the first numbers in the string (slurm support)
jobID=`echo $jobID | awk 'match($0,/[0-9]+/){print substr($0, RSTART, RLENGTH)}'`
(source)
This code has been used in production for many years, and has worked for qsub
in both PBS, PBS Pro, and SLURM.