next up previous contents
Next: Load balancing Up: Future enhancements to ProtoWrap Previous: Master initialization program and   Contents

Signal handling

Unix processes often interoperate by using signals. In a Unix system[*], there are many predefined signals, and probably the three that are more frequently used are SIGTERM, SIGKILL, SIGHUP and SIGCHLD. Signals provide a way of controlling processes, either from other processes or from the kernel itself. Some signals can be ignored or caught[*] and some can not. The signals just mentioned have the following purposes:

SIGTERM
Termination signal. A process which recieves this signal should finish its activity and shut down cleanly. This signal can be caught or ignored.
SIGKILL
Kill signal. When this signal is sent to a process, the process gets immediately terminated. This signal can neither be caught nor ignored, and it is often used as the last resort method to kill a process.
SIGHUP
Hangup signal. This signal can be used in many different ways; it was originally concieved to inform a process that its controlling terminal or process has just hung up or died, and that it should terminate cleanly. Another use has however been found for it due to its ability to be caught, and has now become its primary use: Sending SIGHUP to a daemon process makes it reload its configuration and restart.
SIGCHLD
Child stopped or terminated. This signal is sent whenever a child process has finished execution, so that the parent process can clean up after it, recieve the results to a certain operation, or whatever information must be sent. This signal is often ignored.
Currently, ProtoWrap does no signal handling, except for specifically ignoring SIGCHLD to avoid having zombie processes lying around waiting to be reaped. Restarting on SIGHUP can be very useful, and it should soon be added to ProtoWrap. As ProtoWrap does not hold long-term information on system memory, catching SIGTERM would not be really important, except for logging or cleanup purposes.


next up previous contents
Next: Load balancing Up: Future enhancements to ProtoWrap Previous: Master initialization program and   Contents
Gunnar Wolf
2001-03-12