Why successfully completed
or see for C Exit Codes
Typically, exit code 0 (zero) means successful completion. Codes 1-127
are typically generated by your job itself calling
with a non-zero value to terminate itself and indicate an error.
In BaBar we don't make very much use of this. The most common such value you might
see is 64, which is the value used by Framework to say that its event loop is
being stopped before all the requested data have been read, typically because time
In recent BaBar releases you might also see 125, which we use as a code for a generic
"severe error"; the job log should contain a message stating what the error was.
Exit codes in the range 129-255 represent jobs terminated by Unix
Each type of signal has a number, and what's reported as the job exit code is the
signal number plus 128.
Signals can arise from within the process itself (as for SEGV, see below)
or be sent to the process by some external agent (such as the batch control system,
or your using the "bkill" command).
By way of example, then, exit code 64 means that the job deliberately terminated its
execution by calling "exit(64)",
exit code 137 means that the job received a signal 9,
and exit code 140 represents signal 12.
SIGHUP 1 Term Hangup detected on controlling terminal
or death of controlling process
SIGINT 2 Term Interrupt from keyboard
SIGQUIT 3 Core Quit from keyboard
SIGILL 4 Core Illegal Instruction
SIGABRT 6 Core Abort signal from abort(3)
SIGFPE 8 Core Floating point exception
SIGKILL 9 Term Kill signal
SIGSEGV 11 Core Invalid memory reference
SIGPIPE 13 Term Broken pipe: write to pipe with no readers
SIGALRM 14 Term Timer signal from alarm(2)
SIGTERM 15 Term Termination signal