Signals in Linux
Signals are a way of sending simple messages to processes. Most of these messages are already defined and can be found in <linux/signal.h>. However, signals can only be processed when the process is in user mode. If a signal has been sent to a process that is in kernel mode, it is dealt with immediately on returning to user mode.
Every signal has a unique signal name, an abbreviation that begins with SIG (SIGINT for interrupt signal, for example). Each signal name is a macro which stands for a positive integer – the signal number for that kind of signal. Your programs should never make assumptions about the numeric code for a particular kind of signal, but rather refer to them always by the names defined. This is because the number for a given kind of signal can vary from system to system, but the meanings of the names are standardized and fairly uniform.
Signals can be generated by the process itself, or they can be sent from one process to another. A variety of signals can be generated or delivered, and they have many uses for programmers. (To see a complete list of signals in the Linux environment, uses the command kill -l.)
There are total 64 signals in Linux, the list of all the signal can be seen by
# kill –l
Important Signals in Linux
The most common signals used are
- 1 for reloading the process.
- 9 for killing the process.
- 15 for Terminating the process.
- 20 for stopping the process.
To kill the signal completely
To kill the signal, First, find out the process running in the system, let’s say by a user
# ps –u <user name>
# ps –u musab
# kill <signal no> <process id>
# kill -9 11591
Likewise, you can use other signals to kill the process like
# kill -15 <pid>
# kill -1 <pid>
To stop the process using a signal no. 20
To stop a process first login as a normal user and start a process
# su – musab
# cat > hello
Check its PID and kill it by using 20, # ps –u musab
# kill -20
If you have any doubts about Signals, Please let us know.