Differences between revisions 12 and 46 (spanning 34 versions)
Revision 12 as of 2009-03-16 03:31:53
Size: 6967
Editor: anonymous
Comment: converted to 1.6 markup
Revision 46 as of 2017-08-19 10:27:16
Size: 5248
Editor: ?AndreasKlust
Comment:
Deletions are marked like this. Additions are marked like this.
Line 1: Line 1:
## page was renamed from daemon
Line 3: Line 2:
== Pronunciation ==
   {{{
 day'mn or dee'mn
~-[[DebianWiki/EditorGuide#translation|Translation(s)]]: English - [[fr/Daemon|Français]] - [[it/Daemon|Italiano]]-~
----
A [[WikiPedia:Daemon_(computing)|daemon]], or system service, is a background process usually started during the boot sequence. Daemons typically run independent of users, waiting for events to occur and providing services in response. Some common daemons include:

 * sshd - listens for and manages incoming [[ssh|SSH]] connections
 * [[acpid]] - listens for power management events and executes scripts based on them
 * [[Apache|apache]] - provides a local HTTP web server

<<TableOfContents>>


== Daemon management with systemd ==
Since [[DebianJessie]], [[systemd]] is used to manage daemons.

=== Common daemon control ===
Daemons are controlled with the systemctl command:
{{{
# systemctl <COMMAND> <NAME>
}}}
where NAME is the name of the service or daemon. The most common commands for controlling daemons are:
 * '''start''': starts a service immediately
 * '''stop''': stops a service immediately
 * '''restart''': restarts a service
 * '''reload''': asks a service to reload its configuration
 * '''status''': shows the current status of a service

For instance, the sshd daemon is restarted by
{{{
# systemctl restart ssh
Line 8: Line 33:
== What is a daemon? == === Enable/disable daemons ===
The systemctl command is also used to enable or disable the start of a daemon during system boot:
{{{
# systemctl <COMMAND> <NAME>
}}}
where NAME is the name of the service or daemon. The most important commands to enable/disable daemons are:
 * '''enable''': enable service to be started during boot sequence
 * '''disable''': do not start service during boot sequence
 * '''is-enabled''': check if a service is already enabled
Line 10: Line 43:
From the mythological meaning, later rationalized as the acronym `Disk And Execution MONitor'. Note that the enable/disable commands only affect the system at the next boot. To change the system immediately, use the ''--now'' option. For instance:
{{{
# systemctl --now disable ssh
}}}
will prevent starting sshd at the next boot and stop the daemon immediately.
Line 12: Line 49:
''various definitions can be fount on the web : ''
 * A program that is not invoked explicitly, but lies dormant waiting for some condition(s) to occur. The idea is that the perpetrator of the condition need not be aware that a daemon is lurking (though often a program will commit an action only because it knows that it will implicitly invoke a daemon). For example, under ITS writing a file on the LPT spooler's directory would invoke the spooling daemon, which would then print the file. The advantage is that programs wanting (in this example) files printed need neither compete for access to nor understand any idiosyncrasies of the LPT. They simply enter their implicit requests and let the daemon decide what to do with them. Daemons are usually spawned automatically by the system, and may either live forever or be regenerated at intervals. Daemon and demon are often used interchangeably, but seem to have distinct connotations. The term `daemon' was introduced to computing by CTSS people (who pronounced it ''dee'mon'') and used it to refer to what ITS called a dragon; the prototype was a program called DAEMON that automatically made tape backups of the file system. Although the meaning and the pronunciation have drifted, we think this glossary reflects current (2000) usage. From Jargon Dictionary
Line 15: Line 50:
 * A background process of the operating system that usually has root security level permission. A daemon usually lurks in the background until something triggers it into activity, such as a specific time or date, time interval, receipt of e-mail, etc. From I-gloss == Daemon management with sysvinit ==
Before [[DebianJessie]], [[WikiPedia:Init#SysV-style|System V]]-style init scripts were used for daemon management by default. This allows daemons to operate conditionally, based on the current RunLevel of the computer. For example, a daemon can be configured to run only when the computer is in single-user mode (runlevel 1) or, more commonly, when in multi-user mode (runlevels 2-5). For more information, see [[Init]] and [[RunLevel]].
Line 17: Line 53:
 * A process lurking in the background, usually unnoticed, until something triggers it into action. For example, the \cmd{update} daemon wakes up every thirty seconds or so to flush the buffer cache, and the \cmd{sendmail} daemon awakes The [[http://www.debian.org/doc/debian-policy/|Debian Policy Manual]] (sections [[http://www.debian.org/doc/debian-policy/ch-opersys.html#s-sysvinit|9.3]] and [[http://www.debian.org/doc/debian-policy/ch-opersys.html#s9.4|9.4]]) is an excellent resource for better understanding daemon init scripts in Debian.
Line 19: Line 55:
 * A program that runs continuously in the background, until activated by a particular event. A daemon can constantly query for requests or await direct action from a user or other process. From Redhat-9-Glossary === A brief introduction to Debian sysvinit init scripts ===
Daemon init scripts are stored in {{{/etc/init.d/}}} along with the system's other boot-time init scripts.
Line 21: Line 58:
 * A program which runs for an extended period (usually "forever") to handle requests for service as needed. From Linux Guide @FirstLinux When a daemon is enabled or disabled, symbolic links targeting the respective init script are created or removed under the various {{{/etc/rc*.d/}}} directories, corresponding to the RunLevel(s) in which the daemon is to run.
Line 23: Line 60:
 * A program, usually on a computer running UNIX, that serves some obscure function (such as routing electronic mail to its recipients) and usually has a very limited user interface. There's some debate about the origins of the word, but most say it derives from the devilish spirits of Greek mythology. From QUECID Daemon init scripts are treated as configuration files by [[dpkg]]. This means they remain on the system after a package is uninstalled, unless the '{{{purge}}}' option is used.
Line 25: Line 62:
 * Disk And Execution MONitor (Unix) From VERA === Common daemon controls ===
Most daemon scripts accept a common set of options, which can be passed directly to the script at the command line, for example:
{{{
# service ssh restart
Restarting OpenBSD Secure Shell server: sshd.
}}}
A brief description of the most common options follows:
 * '''start''': start a service
 * '''stop''': stop a service
 * '''restart''': restart a service without reloading its job config file
 * '''reload''': send a SIGHUP signal to running process
 * '''status''': return the status of a service
Line 27: Line 75:
 * Daemon (service) : On UNIX, a daemon is a program running in the background, usually providing some sort of service. Typical daemons are those that provide e-mail, printing, telnet, FTP, and web access. From Hacking-Lexicon Starting and stopping daemons in this manner is temporary and will not survive a reboot. Refer to the next section to enable/disable daemons on a permanent basis.
Line 29: Line 77:
== List of service daemons == === Enable/disable daemons ===
''Note: When in doubt, refer to the documentation of the daemon itself.''
Line 31: Line 80:
''' Note: This page is very incomplete'''
Line 33: Line 81:
 * amd Auto Mount Daemon
 * [[CronAnacronAtBatchSchedulers|anacron]] Executed delayed cron tasks at boot time
 * apmd Advanced Power Management Daemon
 * arpwatch watches for ethernet IP address pairings that are resolved using the ARP protocol
 * [[CronAnacronAtBatchSchedulers|atd]] Runs jobs queued using the at tool
 * [[AutoFs|autofs]] Supports the automounter daemon allowing mount and unmount of devices on demand
 * bincimapd
 * bootparmd A Internet Bootstrap Protocol server daemon
 * chttpd
 * [[CronAnacronAtBatchSchedulers|crond]] Task Scheduler
 * [[DevFS|devfsd]]
 * [[DHCP_Server|dhcpd]] Dynamic Host Configuration Protocol and Internet Bootstrap Protocol Server
 * drakfont A font server daemon used in Mandrake Linux
 * egpup
 * fetchmail daemon to retrieve mail from servers at regular intervals
 * ftpd FTP Server Daemon vsftpd
 * gated routing daemon that handles multiple routing protocols and replaces routed and egpup
 * gpm General Purpose Mouse Daemon
 * httpd Web Server Daemon
 * identd Provides the identity of a user of a particular TCP connection
 * inetd Internet Superserver Daemon
 * imapd bincimap
 * innd Usenet News Server Daemon
 * ipchains A packet forwarding / firewall daemon
 * isdn ISDN network interfacing server daemon
 * kapmd Advanced Power Management Daemon
 * kblockd
 * kerneld Automatically loads and unloads kernel modules
 * keventd
 * keytable Loads the appropriate keyboard map from the /etc/sysconfig/keyboard configuration file
 * kheader
 * klogd
 * ksoftirqd
 * kswapd
 * kswapd0
 * kudsu detects and configures new or changed hardware during boot
 * kupdated
 * linuxconf Startup hook for the linuxconf configuration system
 * lockd
 * lpd Line Printer Daemon
 * mathoptd A small single process httpd daemon with CGI support
 * mcserv Server for the midnight command networking filesystem
 * micro_httpd
 * mountd
 * mysql Database server daemon
 * named A DNS server daemon
 * netfs Network Filesystem Mounter
 * network Activates all network interfaces at boot time
 * nfsd
 * nfslock Used to start and stop nfs file locking services
 * nmbd
 * numlock This daemon locks the numlock key during a runlevel change
 * pcmcia Provides generic pcmcia services
 * portmap
 * [[Postfix|postfix]] A mail transport agent used as a replacement for sendmail
 * [[PostgreSql|postgresql]] Database server daemon
 * random Random number generating daemon
 * rlprd Remote line printer proxy daemon
 * routed Manages routing tables
 * rpciod Remote Procedure Call daemon
 * rquotad
 * rstatd kernel statistics server daemon
 * rusersd Allows users to find one another over the network
 * rwalld Allows users to write messages on remote terminals using rwall
 * rwhod maintains the database used by the rwho and ruptime tools
 * sendmail A mail transfer agent
 * samba
 * smbd Samba Server Daemon
 * smtpd Simple Mail Transfer Protocol Daemon
 * snmpd Simple Network Management Protocol Daemon
 * sound A sound server daemon
 * squid A web page caching proxy server daemon
 * sshd
 * statd
 * syslogd System logging daemon
 * tcpd Service wrapper to restrict access to inetd based services through hosts.allow and hosts.deny
 * telnetd Telnet Server daemon
 * uptimed Uptime logging daemon
 * usb Daemon to manage devices attached to the universal serial bus
 * vsftpd
 * walld
 * webmin Web based administration server daemon
 * xfs X font server daemon
 * xinetd Enhanced Internet Superserver Daemon
 * xntd Network Time Server Daemon
 * ypbind A bind server for Network Information Services
To (re)enable/disable a daemon (using the default settings & runlevels) run the following command, where ''<daemon>'' corresponds to the name of the init script as listed in {{{/etc/init.d/}}}:
{{{
# update-rc.d <daemon> enable|disable
}}}

For more detail on what these commands do, refer to the [[DebianMan:8/update-rc.d|update-rc.d manpage]].

For more information on Debian's way of managing and writing init scripts see [[LSBInitScripts/DependencyBasedBoot]] and [[LSBInitScripts]].

=== GUI utilities for daemon management ===
Several GUI tools exist to make daemon management even simpler; some popular examples available for Debian include: DebianPkg:rcconf and DebianPkg:sysv-rc-conf.

== See also ==
 * [[Init]]
 * [[RunLevel]]
 * manpages: [[DebianMan:5/inittab|inittab]], [[DebianMan:8/init|init]], [[DebianMan:5/rcS|rcS]], [[DebianMan:8/update-rc.d|update-rc.d]], [[DebianMan:8/runlevel|runlevel]], [[DebianMan:8/insserv|insserv]]

----
CategoryBootProcess

Translation(s): English - Français - Italiano


A daemon, or system service, is a background process usually started during the boot sequence. Daemons typically run independent of users, waiting for events to occur and providing services in response. Some common daemons include:

  • sshd - listens for and manages incoming ?SSH connections

  • acpid - listens for power management events and executes scripts based on them

  • apache - provides a local HTTP web server

Daemon management with systemd

Since DebianJessie, systemd is used to manage daemons.

Common daemon control

Daemons are controlled with the systemctl command:

# systemctl <COMMAND> <NAME>

where NAME is the name of the service or daemon. The most common commands for controlling daemons are:

  • start: starts a service immediately

  • stop: stops a service immediately

  • restart: restarts a service

  • reload: asks a service to reload its configuration

  • status: shows the current status of a service

For instance, the sshd daemon is restarted by

# systemctl restart ssh

Enable/disable daemons

The systemctl command is also used to enable or disable the start of a daemon during system boot:

# systemctl <COMMAND> <NAME>

where NAME is the name of the service or daemon. The most important commands to enable/disable daemons are:

  • enable: enable service to be started during boot sequence

  • disable: do not start service during boot sequence

  • is-enabled: check if a service is already enabled

Note that the enable/disable commands only affect the system at the next boot. To change the system immediately, use the --now option. For instance:

# systemctl --now disable ssh

will prevent starting sshd at the next boot and stop the daemon immediately.

Daemon management with sysvinit

Before DebianJessie, System V-style init scripts were used for daemon management by default. This allows daemons to operate conditionally, based on the current RunLevel of the computer. For example, a daemon can be configured to run only when the computer is in single-user mode (runlevel 1) or, more commonly, when in multi-user mode (runlevels 2-5). For more information, see Init and RunLevel.

The Debian Policy Manual (sections 9.3 and 9.4) is an excellent resource for better understanding daemon init scripts in Debian.

A brief introduction to Debian sysvinit init scripts

Daemon init scripts are stored in /etc/init.d/ along with the system's other boot-time init scripts.

When a daemon is enabled or disabled, symbolic links targeting the respective init script are created or removed under the various /etc/rc*.d/ directories, corresponding to the RunLevel(s) in which the daemon is to run.

Daemon init scripts are treated as configuration files by dpkg. This means they remain on the system after a package is uninstalled, unless the 'purge' option is used.

Common daemon controls

Most daemon scripts accept a common set of options, which can be passed directly to the script at the command line, for example:

# service ssh restart
Restarting OpenBSD Secure Shell server: sshd.

A brief description of the most common options follows:

  • start: start a service

  • stop: stop a service

  • restart: restart a service without reloading its job config file

  • reload: send a SIGHUP signal to running process

  • status: return the status of a service

Starting and stopping daemons in this manner is temporary and will not survive a reboot. Refer to the next section to enable/disable daemons on a permanent basis.

Enable/disable daemons

Note: When in doubt, refer to the documentation of the daemon itself.

To (re)enable/disable a daemon (using the default settings & runlevels) run the following command, where <daemon> corresponds to the name of the init script as listed in /etc/init.d/:

# update-rc.d <daemon> enable|disable

For more detail on what these commands do, refer to the update-rc.d manpage.

For more information on Debian's way of managing and writing init scripts see LSBInitScripts/DependencyBasedBoot and LSBInitScripts.

GUI utilities for daemon management

Several GUI tools exist to make daemon management even simpler; some popular examples available for Debian include: rcconf and sysv-rc-conf.

See also


CategoryBootProcess