Daemons (简体中文)

From ArchWiki
Revision as of 09:15, 1 November 2012 by Fengchao (Talk | contribs) (Move daemons list to sub pages.)

Jump to: navigation, search
摘要 help replacing me
本文介绍守护进程(系统服务)相关的知识。
相关页面
Category:Daemons and system services (简体中文)
如何编写rc.d启动脚本
rc.conf (简体中文)
翻译状态: 本文是英文页面 Daemon翻译,最后翻译时间:2012-10-09,点击这里可以查看翻译后英文页面的改动。

守护进程(daemon),指后台运行的、等待特定事件发生并提供服务的程序。典型的例子如网页服务器,等待网页传输请求并提供传输服务;又如ssh服务器,等待用户登入操作。许多守护进程提供不可见的服务,比如记录日志(syslog,metalog)、校准时间(ntpd)。

尽管实际意义有所不同,守护进程也可以叫做系统服务。实际上,后者似乎是个更好理解的名称。

有时 daemon 也会指在系统启动时运行,但是运行之后不会保留进程的程序。因为它们使用相同的启动关闭框架 (例如 /etc/rc.d/ 脚本),所以也叫 daemon. 例如 /etc/rc.d 中的 alsacpufreq 提供了固定内核模块参数功能,但是完成后不会保留后台进程。

Initscripts system

开机时启动

默认情况下,Arch Linux 设置了几个开机自启动的系统服务(守护进程),可以在rc.confDAEMONS数组配置开机启动的系统服务。最初,这个数组应该像下面一行:

DAEMONS=(syslog-ng network netfs crond)

这些进程会按顺序依次启动。在系统服务名称前面加上!即可禁止开机运行,而名称前加@表示该进程可以后台启动而无需等待。

手动启动、终止

每一个守护进程都有一系列可以用特殊命令调用的操作:通常至少包括 start, stop, 和 restart. 你可以运行这些命令通过:

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

一个完全等价的方法是:

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

可能还有其他控制命令,具体参见它们的文档,或者查看源代码。

必要性

只有在确实需要时,再添加更多服务。不过有些服务多数人都要用到,比如D-Bus。如果使用打印机。CUPS也是必需的。用户需要自己把他们添加到/etc/rc.conf

后台启动服务

后台启动服务,指启动某个服务时,无需等待启动完毕,便可同时进行下一个操作。某些时候这样做可以节约开机时间。不要尝试把所有服务都设置后台启动。以下给出一个例子:

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

后台启动openntpd(时间同步服务)可能导致同步出现错误。如果确实发生了,那就不要设置后台启动它。

Rc.conf 图形前端

Rc.conf GUI Frontends一文提供了图形化配置/etc/rc.conf的工具。

Systemd 系统

显示运行中的单元:

$ systemctl list-units

使用 --all 选项可以显示所有可用单元。

启用服务器:

# systemctl start <name>.service

禁用服务:

# systemctl stop <name>.service

开机自动启动:

# systemctl enable <name>.service

停止开机自动启动:

# systemctl disable <name>.service

这里有更详细的介绍。

守护进程列表

此处是守护进程的不完全列表, 每个守护进程给出了 initscripts 使用的脚本和 systemd 使用的服务文件。

参见