Daemon (computer software) |
In Unix and other computer operating systems, a daemon -- sometimes called a phantom -- is a particular
class of computer program which runs in the background, rather than under the direct
control of a user; they are usually instantiated as processes.
Systems often "launch" daemons at start-up time: they often serve the function of responding to network requests, hardware
activity, or other programs by performing some task. Daemons can also configure hardware (like devfsd on some Linux systems), run scheduled tasks (like
cron), and perform a variety of other tasks.
The programmers of CTSS coined the term, and all the systems descended from it,
including Unix, have inherited the terminology. (For a fuller explanation of the origin of
the name, see this page .)
In a strictly technical sense, Unix recognises as a daemon any process which has process number 1 (init) as its parent
process. The init process adopts any process whose parent dies without waiting for the child's status, so the common method for
launching a daemon involves forking once or twice, and making the parent (and grandparent) die while the child (or grandchild)
process begins performing its normal function. The idiom is sometimes summarized with the
phrase "fork off and die".
In common Unix usage a daemon may be any background process, whether a child of init or not. UNIX users sometimes spell daemon
as demon, and most usually pronounce the word that way.
On Microsoft Windows systems, programs called "services"
perform the functions of daemons, though the term "daemon" has started to creep into common usage on that platform as well.
See also
|