- A process in Linux is represented as
- A process A sends a signal to process B using system call
kill -<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.