Search code examples
lsf

Log bjob info immediately after bsub


I'm looking for a way to log information to a file about a submitted job immediately after it starts.

Normally all the job status is appended to the log file after a job has completed, but I'd like to know the information it has when it starts.

I know there's the -B flag but I want it in a file, and I could also do something like:

bsub -J jobby -o run_job.log bjobs -l -J jobby > jobby.log; run_job

but maybe someone knows of a funkier way of doing this.


Solution

  • There are some subtle variations that essentially accomplish the same thing:

    1. You can use a pre-exec to do a similar thing instead of doing the bjobs as part of the command:

      bsub -J jobby -E "bjobs -l -J jobby > jobby.log" run_job
      
    2. You can use the job's environment to get your own jobid instead of using -J if you write your submission as a script:

      #!/bin/sh
      #BSUB -o run_job.log
      bjobs -l $LSB_JOBID > $LSB_JOBID.log
      run_job
      

      Then submit your job like this:

      bsub < jobscript.sh
      
    3. You can do some combination of the above: use $LSB_JOBID in a pre-execution script.

    That's about as 'funky' as it gets AFAIK :)