Daemon is a program that continuously runs as a background process rather than being under the direct control of an interactive user. It exists for the purpose of handling periodic service requests that a computer system expects to receive. The term was coined by programmers at MIT’s Project MAC who took the name from Maxwell’s demon, which was an imaginary being from a thought experiment that continuously worked in the background. Unix systems then inherited this term, which is also consistent with Greek mythology’s interpretation of a daemon as a supernatural being that works in the background with neither a good or evil bias.
While the term became well known with Unix, most operating systems use daemons in some form or another. Traditionally, the process names of a daemon end with the letter d, in order to clarify that the process is indeed a daemon and for differentiation between a daemon and a normal computer program.
Unix daemon examples
Below is a list of daemons found in Unix-like operating systems
- biod: Works in cooperation with the remote nfsd to handle NFS requests
- crond: Time-based job scheduler that runs jobs in the background
- fingerd: Provides a network interface for the finger protocol. Used by the finger command
- ftpd: Services FTP requests from a remote system
- httpd: Web server daemon
- lpd: The line printer daemon that manages printer spooling
- ntpd: Network Time Protocol daemon that manages clock synchronization across the network.
- sshd: Listens for secure shell requests from clients
- syslogd: System logger process that collects various system messages
- systemd: Replacement of init, the Unix program that spawns all other processes
- syncd: Periodically keeps the file systems synchronized with system memory
- vhand: Releases pages of memory for use by other processes.
- ypbind: Finds the serves for an NIS domain and stores the information in a file