GNU Info

Info Node: (bashref.info)Signals

(bashref.info)Signals


Prev: Exit Status Up: Executing Commands
Enter node , (file) or (file)node

Signals
-------

   When Bash is interactive, in the absence of any traps, it ignores
`SIGTERM' (so that `kill 0' does not kill an interactive shell), and
`SIGINT' is caught and handled (so that the `wait' builtin is
interruptible).  When Bash receives a `SIGINT', it breaks out of any
executing loops.  In all cases, Bash ignores `SIGQUIT'.  If job control
is in effect (Note: Job Control), Bash ignores `SIGTTIN', `SIGTTOU',
and `SIGTSTP'.

   Commands started by Bash have signal handlers set to the values
inherited by the shell from its parent.  When job control is not in
effect, asynchronous commands ignore `SIGINT' and `SIGQUIT' as well.
Commands run as a result of command substitution ignore the
keyboard-generated job control signals `SIGTTIN', `SIGTTOU', and
`SIGTSTP'.

   The shell exits by default upon receipt of a `SIGHUP'.  Before
exiting, an interactive shell resends the `SIGHUP' to all jobs, running
or stopped.  Stopped jobs are sent `SIGCONT' to ensure that they receive
the `SIGHUP'.  To prevent the shell from sending the `SIGHUP' signal to
a particular job, it should be removed from the jobs table with the
`disown' builtin (Note: Job Control Builtins) or marked to not
receive `SIGHUP' using `disown -h'.

   If the  `huponexit' shell option has been set with `shopt' (Note:
Bash Builtins), Bash sends a `SIGHUP' to all jobs when an interactive
login shell exits.

   When Bash receives a signal for which a trap has been set while
waiting for a command to complete, the trap will not be executed until
the command completes.  When Bash is waiting for an asynchronous
command via the `wait' builtin, the reception of a signal for which a
trap has been set will cause the `wait' builtin to return immediately
with an exit status greater than 128, immediately after which the trap
is executed.


automatically generated by info2www version 1.2.2.9