Difference between revisions of "Daemons"

From ArchWiki
Jump to: navigation, search
(add Turkish interlanguage link)
m (List of Daemons: - removed jacklistenerd (see app page))
Line 95: Line 95:
|[[irqbalance]]||Irqbalance is the Linux utility tasked with making sure that interrupts from your hardware devices are handled in as efficient a manner as possible.
|[[irqbalance]]||Irqbalance is the Linux utility tasked with making sure that interrupts from your hardware devices are handled in as efficient a manner as possible.
|[[Jacklistener|jacklistenerd]]||Reacts to headphone/microphone jack (un)plugging.

Revision as of 05:05, 15 May 2012

This template has only maintenance purposes. For linking to local translations please use interlanguage links, see Help:i18n#Interlanguage links.

Local languages: Català – Dansk – English – Español – Esperanto – Hrvatski – Indonesia – Italiano – Lietuviškai – Magyar – Nederlands – Norsk Bokmål – Polski – Português – Slovenský – Česky – Ελληνικά – Български – Русский – Српски – Українська – עברית – العربية – ไทย – 日本語 – 正體中文 – 简体中文 – 한국어

External languages (all articles in these languages should be moved to the external wiki): Deutsch – Français – Română – Suomi – Svenska – Tiếng Việt – Türkçe – فارسی

A daemon is a program that runs in the background, waiting for events to occur and offering services. A good example is a web server that waits for a request to deliver a page or a ssh server waiting for someone trying to log in. While these are full featured applications, there are daemons whose work is not that visible. Daemons are for tasks like writing messages into a log file (e.g. syslog, metalog) or keeping your system time accurate (e.g. ntpd).

Note: The word daemon is sometimes used for a class of programs that are started at boot but have no process which remains in memory. They are called daemons simply because they utilize the same startup/shutdown framework (e.g. /etc/rc.d/ scripts) used to start traditional daemons. For example, the /etc/rc.d scripts for alsa and cpufreq provide persistent configuration support for their perspective kernel modules but do not start additional background processes to service requests or respond to events.

From the user's perspective the distinction is typically not significant unless the user tries to look for the "daemon" in a process list.

Starting on Boot

A default install of Arch Linux will leave you with very few services (or daemons) enabled during boot. You can add or remove services by editing the DAEMONS array in your rc.conf file. It will initially look something like this:

DAEMONS=(syslog-ng network netfs crond)

They will start in the order you have them listed. You can disable one and keep it in the array by prefixing it with an exclamation mark (!). You can also have them start in the background by adding the @ symbol in front of it.

Daemon scripts are stored in /etc/rc.d/. You can print the list of all the available daemons on your system, along with their current status, with:

$ rc.d list

Performing daemon actions manually

Every daemon has a series of actions that can be called with specific commands: usually there are at least start, stop, and restart. You can issue each with:

# /etc/rc.d/daemon-name {start|stop|restart|...}

A completely equivalent way is:

# rc.d {start|stop|restart|...} daemon-name-1 daemon-name-2 daemon-name-3 ...

which, as it is clear from the example, works also with a list of daemons, calling for each the given action.

For a list of all the available commands for a specific daemon, check its documentation, or just open the script in a text viewer.


You do not have to add any more services, if you do not feel the need. However, a typical desktop user will add at least CUPS and dbus. As you install new services, you will have to manually add them to the DAEMONS array in /etc/rc.conf. (The DAEMONS array is at the end of the default rc.conf file.)

Starting Daemons in Background

This is helpful for starting a service and letting the next service start before the previous one has finished. Which services to start background depends on your needs. Do not background anything you need immediately. Here is an example:

DAEMONS=(syslog-ng gensplash dbus network netfs @avahi-daemon @samba @crond @openntpd @cupsd @mpd)

Starting openntpd in the background could lead to synchronization errors between the actual time and the time stored on your computer. If you recognize an increasing time difference between your desktop clock and the actual time, try to start the openntpd daemon normally and not in the background.

Rc.conf GUI Frontends

Rc.conf GUI Frontends allow you to easily change settings in /etc/rc.conf using graphical application.

List of Daemons

Here is a list of daemons. Note that any package can provide a daemon, so this list will never be complete. Please feel free to add any missing daemons here, in alphabetical order.

Daemon Description
acpid Delivers ACPI events.
alsa Advanced Linux Sound Architecture; provides device drivers for sound cards.
atd Run jobs queued for later execution.
avahi-daemon Allows programs to automatically find local network services.
crond Daemon to schedule and time events. The daemon name crond is used by at least two packages, cronie and dcron.
cupsd Common UNIX Printing System daemon.
dbus Message bus system for software communication.
dropboxd Cross-platform file synchronisation with version control.
fam File Alteration Monitor. (deprecated)
fbsplash Graphical boot splash screen for the user.
gdm Gnome Display Manager (Login Screen)
gensplash (see fbsplash)
gpm Console mouse support.
hal Hardware Abstraction Layer. (Deprecated)
httpd Apache HTTP Server (Web Server)
hwclock Not a daemon as such, but on shutdown, updates hwclock to compensate for drift. Only run this daemon if ntpd is not running as both daemons adjust the hardware clock.
irqbalance Irqbalance is the Linux utility tasked with making sure that interrupts from your hardware devices are handled in as efficient a manner as possible.
lighttpd Lighttpd HTTP Server (Web Server).
mdadm MD Administration (Linux Software RAID).
mpd Music Player Daemon.
mysqld MySQL database server.
netfs Mounts network file systems.
network To bring up the network connections.
networkmanager Replace network, and provide configuration and detection for automatic network connections.
nginx Nginx HTTP Server and IMAP/POP3 proxy server (Web Server)
nscd Name service cache daemon
ntpd Network Time Protocol daemon (client and server).
openntpd alternate Network Time Protocol daemon (client and server).
php-fpm FastCGI Process Manager for PHP
postgresql PostgreSQL database server.
powernowd To adjust speed of CPU depending on system load. See also CPU_Frequency_Scaling
ppp A daemon which implements the Point-to-Point Protocol for dial-up networking.
pure-ftpd FTP server.
rsyncd Rsync daemon.
rsyslogd The latest version of a system logger.
samba File and print services for Microsoft Windows clients.
saned To share the scanner system over network.
sensors Hardware (temperature, fans etc) monitoring.
slim Simple Login Manager
smartd Self-Monitoring, Analysis, and Reporting Technology (S.M.A.R.T) Hard Disk Monitoring
soundmodem Multiplatform Soundcard Packet Radio Modem
sshd OpenSSH (secure shell) daemon.
stbd This daemon was previously necessary for gnome-system-tools. However, as of gnome-tools 2.28, it is no longer needed.
syslogd This was the older and basic system logger.
syslog-ng System logger next generation.
timidity++ Software synthesizer for MIDI.
vboxdrv Necessary to run VirtualBox.
vsftpd FTP server.
wicd Combine with dbus to replace network, a lightweight alternative to NetworkManager.
x11vnc VNC remote desktop daemon

See also

Examples for writing rc.d scripts