System daemons
As already stated, a daemon is a computer program that runs as a background process; in particular, for a Unix system, the Unix bible Advanced Programming in the UNIX Environment by Richard Stevens says:
Daemons are processes that live for a long time. They are often started when the system is bootstrapped and terminate only when the system is shutdown. We say they run in background, because they don't have a controlling terminal.
This behavior is so important that a special function has been implemented in the glibc library that permits the developer to easily create a daemon process. The function is (obviously) named daemon()
.
Just to fix this concept, we report a possible implementation of the daemon()
function in order to show you which steps a process should carry out in order to turn itself into a daemon:
int daemon(void) { int fd; /* Create the daemon grand-child process */ switch (fork()) { case -1: return -1; /* error! */ case 0...