Copyright (C) 2000-2012 |
GNU Info (bashref.info)SignalsSignals ------- 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 |