In multitasking computer operating systems
, a daemon
is a computer program that runs as a background process, rather than being under the direct control of
an interactive user. Historically, daemon names end with the letter d: for example,
- syslogd is the daemon that implements the system logging facility and
- sshd is a daemon that services incoming SSH connections.
In a Unix environment, the parent process of a daemon is often the init process
. A daemon is usually created by a process forking a child process and then
immediately exiting, thus causing init to adopt the child process. In addition, a daemon or the operating system typically must perform other operations,
such as dissociating the process from any controlling terminal (tty). Such procedures are often implemented in various convenience routines such as daemon in Unix.
Systems often start daemons at boot time and serve the function of responding to network requests, hardware activity, or other programs by performing some task.
Daemons can also configure hardware (like udevd on some GNU/Linux systems), run scheduled tasks (like cron), and perform a variety of other tasks.