Magazine

Ignoring Signals in Linux for Bash Script

Posted on the 02 May 2021 by Satish Kumar @satish_kumar86

If we want the shell to ignore certain signals, then we can call the trap command followed by a pair of empty quotes as a command. Those signals will be ignored by the shell process shown by either of the following commands:

$ trap " " 2 3 20$ trap " " INT QUIT TSTP

The signals 2 (SIGINT)3 (SIGQUIT), and 20 (SIGTSTP) will be ignored by the shell process.

Resetting signals

If we want to reset the signal behavior to the original default action, then we need to call the trap command followed by the signal name or number as shown in the following examples, respectively:

$ trap TSTP$ trap 20

This will reset the default action of signal 20 (SIGTSTP). The default action is to suspend the process (Ctrl + Z).

Listing traps

Let’s reassign our function to signals with the trap command:

$ trap 'echo "You pressed Control key" '  0 1 2 15

If we do not pass any arguments after the trap command, then it lists all reassigned signals along with their functions.

We can list all the assigned signal lists with the following command:

$ trap

Output:

Output:

trap -- 'echo "You pressed Control key" ' EXIT
trap -- 'echo "You pressed Control key" ' SIGHUP
trap -- 'echo "You pressed Control key" ' SIGINT
trap -- 'echo "You pressed Control key" ' SIGTERM

Back to Featured Articles on Logo Paperblog