Signals in Linux are a very important concept to understand. A robust program needs to handle signals. This is because signals are a way to deliver asynchronous events to the application.
A signal is nothing but a way of communicating a message from one process to another. These messages are popularly known as notifications, which the receiving process is free to process, ignore, or leave up to the OS to take default action. For example, a notification can be to kill the receiving process, or let it know that it has accessed an invalid memory area, or it can be a notification of availability of a resource, and so on. So, you can see that signals are a way for inter-process communication (IPC). Signals are important because they drive some of the most popular programming and system administration activities, so they're also important...