Linux Signals
- A process in Linux is represented as
task_struct
. - A process A sends a signal to process B using system call
kill()
orkill -<sig num> <pid>
. - Kernel updates the
task_struct
of the receiving process B. It changes the signal field with the passed value. - The scheduler checks the signals on a process before running the process. If the signal is set, it calls the signal handler.
- A process can define its handlers for all signals except SIGKILL and SIGSTOP.
- There is always a default signal handler for each signal.