Return jobid to stdout

I’m sending a job with these directives:

#!/bin/bash

#PBS -N job_WASP

#PBS -l walltime=440:00:00

#PBS -l select=1:ncpus=4:mem=6gb

#PBS -q cgsd

#PBS -k oed

I remember that openpbs used to print the jobid of this particular job in the first line of the stdout which in this case is a file named job_WASP.oxxx with xxx being the job id number. So essentially in this file the first line would be xxx.server. I’m no longer getting the jobid as ouput in this file. What could be wrong here ? thanks.

Could you please submit this job and check whether it creates stdout and stderr.
qsub -q cgsd -- /bin/hostname

  • please run the above command form the home directory of the user.

If you are not able to see the stdout and stderr, then there should be issue with passwordless ssh/scp issues from compute node to server. Hence, please check the compute node on which this job ran at this locaiton /var/spool/pbs/undelivered

yes it does. it prints to stdout the jobid and it also writes STDIN.exxx and STDIN.oxxx files with STDIN.oxxx file having the node in the first line.

So what is the catch here ? Do I need to use -- to have the jobid printed ?

Please try this

#!/bin/bash

#PBS -N job_WASP
#PBS -l walltime=440:00:00
#PBS -l select=1:ncpus=4:mem=6gb
#PBS -q cgsd

This should automatically create .o and .e files by default

You have to check the respective compute node’s mom log files to find out what is causing the issue with #PBS -k oed

I understand about .o and .e files , my initial question is how to access the jobid once such job is sent

PBS does not normally print the jobid at the beginning of the job’s stdout. Perhaps your shell startup scripts (e.g., $HOME/.profile) used to do this?

Instead, your script can print the jobid itself. Just put

echo $PBS_JOBID

after your #PBS directives.

1 Like