I have a program that, when it receives a SIGUSR1
, writes some output and quits. I'm trying to get sbatch
to notify this program before timing out.
I enqueue the program using:
sbatch -t 06:00:00 --signal=USR1 ... --wrap my_program
but my_program
never receives the signal. I've tried sending signals while the program is running, with: scancel -s USR1 <JOBID>
, but without any success. I also tried scancel --full
, but it kills the wrapper and my_program
is not notified.
One option is to write a bash file that wraps my_program and traps the signal, forwarding it to my_program
(similar to this example), but I don't need this cumbersome bash file for anything else. Also, sbatch --signal
documentation very clearly says that, when you want to notify the enveloping bash file, you need to specify signal=B:
, so I believe that the bash wrapper is not really necessary.
So, is there a way to send a SIGUSR1 signal to a program enqueued using sbatch --wrap
?