免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 4674 | 回复: 0
打印 上一主题 下一主题

深入了解Linux的守护进程 [复制链接]

论坛徽章:
1
午马
日期:2014-06-14 09:08:34
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2006-10-10 15:27 |只看该作者 |倒序浏览

Linux服务器在启动时需要启动很多系统服务,它们向本地和网络用户提供了Linux的系统功能接口,直接面向应用程序和用户。提供这些服务的程序是由运行在后台的守护进程(daemons)来执行的。守
护进程是生存期长的一种进程。它们独立于控制终端并且周期性的执行某种任务或等待处理某些发生的事件。他们常常在系统引导装入时启动,在系统关闭时终止。linux系统有很多守护进程,大多数服务器都是用守护进程实现的。同时,守护进程完成许多系统任务,比如,作业规划进程crond、打印进程lqd等。有些书籍和资料也把守护进程称作:“服务”。选择运行哪些守护进程,要根据具体需求决定。查看系统可以提供的守护进程对应的服务,使用下面方法,以root权限运行:
#ntsysv

图1 可以选择的系统服务
界面如图1所示的窗口,下面详细介绍一下各项系统服务的功能。以英文字母为序:
一、Linux守护进程简介
1.alsasound :Alsa声卡驱动守护程序。Alsa声卡驱动程序本来是为了 一种声卡Gravis UltraSound(GUS)而写的,该程序被证 明很优秀,于是作者就开始为一般的声卡写 驱动程序。 Alsa和OSS/Free 及OSS/Linux兼容,但是有自己的接 口,甚至比OSS优秀。
2.acpid:acpid(Advanced Configuration and Power Interface)是为替代传统的APM电源管理标准而推出的新型电源管理标准。通常笔记本电脑需要启动电源进行管理。
3.atalk:AppleTalk网络守护进程。注意不要在后台运行该程序,该程序的数据结构必须在运行其他进程前先花一定时间初始化。
4.amd: 自动安装NFS守护进程。
5.anacron:一个自动化运行任务守护进程。Red Hat Linux 随带四个自动化任务的工具:cron、 anacron、at、和 batc。当你的Linux服务器并不是全天运行,这个anacron就可以帮你执行在"crontab"设定的时间内没有执行的工作。
6.apmd:apmd(Advanced Power Management)是高级电源管理。传统的电源管理标准,对于笔记本电脑比较有用,可以了解系统的电池电量信息。并将相关信息通过syslogd 写入日志。也可以用来在电源不足时关机。
7.arptables_jf :为arptables网络的用户控制过滤的守护进程。
8.arpwatch: 记录日志并构建一个在LAN接口上看到的以太网地址和IP地址对数据库 。
atd:at和batch命令守护进程,用户用at命令调度的任务。Batch用于在系统负荷比较低时 运行批处理任务。
9.autofs:自动安装管理进程automount,与NFS相关,依赖于NIS服务器。
10.bootparamd:引导参数服务器,为LAN上的无盘工作站提供引导所需的相关信息。
11.bluetooch:蓝牙服务器守护进程。
12.crond :cron是Unix下的一个传统程序,该程序周期地运行用户 调度的任务。比起传统的Unix版本,Linux版本添加了不少属性,而且更安全,配置更简单。类似计划任务。
13.chargen:使用tcp协议的chargen server,chargen(Character Generator Protocol)是一种网络服务,主要功能是提供类似远程打字的功能。
14.chargen-udp:使用UDP协议的chargen server。
15.cpuspeed:监测系统空闲百分比,降低或加快CPU时钟速度和电压从而在系统空闲时将能源消耗降为最小,而在系统繁忙时最大化加快系统执行速度。
16.dhcpd:动态主机控制协议(Dynamic Host Control Protocol)的服务守护进程。
17.cups: cups(Common UNIX Printing System)是通用UNIX打印守护进程,为Linux提供第三代打印功能。
18.cups-config-daemons:cups打印系统切换守护进程。
19.cups-lpd:cups行打印守护进程。
20.daytime:使用TCP 协议的Daytime守护进程,该协议为客户机实现从远程服务器获取日期 和时间的功能。预设端口:13。
21.daytime-udp:使用UDP 协议的Daytime守护进程。
22.dc_server:使用SSL安全套接字的代理服务器守护进程。
23.dc_client:使用SSL安全套接字的客户端守护进程。
24.diskdump:服务器磁盘备份守护进程。
25.echo:服务器回显客户数据服务守护进程。
26.echo-udp:使用UDP协议的服务器回显客户数据服务守护进程。
27.eklogin:接受rlogin会话鉴证和用kerberos5加密的一种服务的守护进程。
28.gated :网关路由守护进程。它支持各种路由协议,包括RIP版本1和2、DCN HELLO协议、 OSPF版本2以及EGP版本2到4。
29.gpm:gpm(General Purpose Mouse Daemon )守护进程为文本模式下的Linux程序如mc(Midnight Commander)提供了鼠标的支持。它也支持控制台下鼠标 的拷贝,粘贴操作以及弹出式菜单。
30.gssftp: 使用kerberos 5认证的ftp守护进程
31.httpd:Web服务器Apache守护进程,可用来提供HTML文件以 及CGI动态内容服务。
32.inetd :因特网操作守护程序。监控网络对各种它管理的服务的需求,并在必要的时候启动相应的服务程序。在Redhat 和Mandrake linux中被xinetd代替。Debian, Slackware, SuSE仍然使用。
33.innd:Usenet新闻服务器守护进程。
34.iiim:中文输入法服务器守护进程。
35.iptables:iptables防火墙守护进程。
36.irda:红外端口守护进程。
37.isdn:isdn启动和中止服务守护进程。
38.krb5-telnet:使用kerberos 5认证的telnet守护进程。
39.klogin:远程登陆守护进程。
40.keytable: 该进程的功能是转载在/etc/sysconfig/keyboards里定义的键盘映射表,该表可以通过kbdconfig工具进行选择。您应该使该程序处于激活状态。
41.irqbalance:对多个系统处理器环境下的系统中断请求进行负载平衡的守护程序。如果你只安装了一个CPU,就不需要加载这个守护程序。
42.kshell :kshell守护进程。
43.kudzu:硬件自动检测程序,会自动检测硬件是否发生变动,并相应进行硬件的添加、删除工作。当系统启动时,kudzu会对当前的硬件进行检测,并且和存储在 /etc/sysconfig/hwconf中的硬件信息进行对照,如果某个硬件从系统中被添加或者删除时,那么kudzu就会察觉到,并且通知用户是否进行相关配置,然后修改etc/sysconfig/hwconf,使硬件资料与系统保持同步。如果/etc/sysconfig/hwconf这个文件不存在,那么kudzu将会从/etc/modprobe.conf,/etc/sysconfig/network-scripts/和 etc/X11/XF86Config中探测已经存在的硬件。如果你不打算增加新硬件,那么就可以关闭这个启动服务,以加快系统启动时间。
44.ldap:ldap(Lightweight Directory Access Protocol)目录访问协议服务器守护进程。
45.lm_seroems:检测主板工作情况守护进程。
46.lpd :lpd是老式打印守护程序,负责将lpr等程序提交给打印 作业。
47.mdmonitor:RAID相关设备的守护程序。
48.messagebus:D-BUS是一个库,为两个或两个以上的应用程序提供一对一的通讯。 dbus-daemon-1是一个应用程序,它使用这个库来实现messagebus守护程序。多个应用程序通过连接messagebus守护程序可以实现与其他程序交换信息。
49.microcode_ctl:可编码以及发送新的微代码到内核以更新
Intel
IA32系列处理器守护进程。
50.mysqld: 一个快速高效可靠的轻型SQL数据库引擎守护进程。
51.named:DNS(BIND)服务器守护进程。
52.netplugd:netplugd(network
ca
ble hotplug management daemon)守护程序,用于监控一个或多个网络接口的状态,当某些事件触发时运行一个外部脚本程序。
53.netdump:远程网络备份服务器守护进程。
54.netfs:Network Filesystem Mounter,该进程安装和卸载NFS、SAMBA和NCP网络文件系统。
55.nfs:网络文件系统守护进程。
56.nfslock:NFS是一个流行的通过TCP/IP网络共享文件的协议,此守护进程提供了NFS文件锁定功能。
57.ntpd:Network time Protocol daemon(网络时间校正协议)。ntpd是用来使系统和一个精确的时间源保持时间同步的协议守护进程。
58.network:激活/关闭启动时的各个网络接口守护进程。
59.psacct:该守护进程包括几个工具用来监控进程活动的工具,包括ac,lastcomm, accton 和sa。
60.pcmcia:主要用于支持笔记本电脑接口守护进程。
61.portmap:该守护进程用来支持RPC连接,RPC被用于NFS以及NIS 等服务。
62.postgresql: PostgreSQL 关系数据库引擎。
63.proftpd: proftpd 是Unix下的一个配置灵活的ftp服务器的守护程序。
64.pppoe:ADSL连接守护进程。
65.random :保存和恢复系统的高质量随机数生成器,这些随机数是系 统一些随机行为提供的。
66.rawdevices:在使用集群文件系统时用于加载raw设备的守护进程。
67.readahead、readahead_early:readahead和readahead_early是在Fedora core 2中最新推出的两个后台运行的守护程序。其作用是在启动系统期间,将启动系统所要用到的文件首先读取到内存中,然后在内存中进行执行,以加快系统的启动速度。
68.rhnsd:Red Hat 网络服务守护进程。通知官方的安全信息以及为系统打补丁。
69.routed :该守护程序支持RIP协议的自动IP路由表维护。RIP主要 使用在小型网络上,大一点的网络就需要复杂一点的协议。
70.rsync:remote sync远程数据备份守护进程。
71.rsh :远程主机上启动一个shell,并执行用户命令。
72.rwhod: 允许远程用户获得运行rwho守护程序的机器上所有已登录用户的列表。
73.rstatd:一个为LAN上的其它机器收集和提供系统信息的守候进程。
74.ruserd:远程用户定位服务,这是一个基于RPC的服务,它提供关于当前记录到LAN上一个机器日志中的用户信息
75.rwalld:激活rpc.rwall服务进程,这是一项基于RPC的服务,允许用户给每个注册到LAN机器上的其他终端写消息 。
76.rwhod:激活rwhod服务进程,它支持LAN的rwho和ruptime服务。
77.saslauthd: 使用SASL的认证守护进程。
78.sendmail:邮件服务器sendmail守护进程。
79.smb:Samba文件共享/打印服务守护进程。
80.snmpd:本地简单网络管理守护进程。
81.squid:代理服务器squid守护进程。
82.sshd:OpenSSH服务器守护进程。Secure Shell Protocol可以实现安全地远程管理主机。
83.smartd:Self Monitor Analysis and Reporting Technology System,监控你的硬盘是否出现故障。
84.syslog:一个让系统引导时起动syslog和klogd系统日志守候进程的脚本。
85.time :该守护进程从远程主机获取时间和日期,采用TCP协议。
86.time-udp: 该守护进程从远程主机获取时间和日期,采用UDP协议。
87.tux:在Linux内核中运行apache服务器的守护进程。
88.vsftpd:vsftpd服务器的守护进程。
89.vncserver: VNC (Virtual Network Computing,虚拟网络计算),它提供了一种在本地系统上显示远程计算机整个"桌面"的轻量型协议。
90.xfs:X Window字型服务器守护进程,为本地和远程X服务器提供字型集。
91.xinetd:支持多种网络服务的核心守护进程。
92.ypbind:为NIS(网络信息系统)客户机激活ypbind服务进程 。
93.yppasswdd:NIS口令服务器守护进程。
94.ypserv:NIS主服务器守护进程。
95.yum:RPM操作系统自动升级和软件包管理守护进程。
二、守护进程工作原理和方式
在Client/Server模式下。服务器监听(Listen)在一个特定的端口上等待客户连接。连接成功后服务器和客户端通过端口进行数据通信。守护进程
的工作就是打开一个端口,并且等待(Listen)进入连接。如果客户端产生一个连接请求,守护进程就创建(Fork)一个子服务器响应这个连接,而主服务器继续监听其他的服务请求。
2.守护进程工作方式:
(1)运行独立的守护进程
独立运行的守护进程由init脚本负责管理,所有独立运行的守护进程的脚本在/etc/rc.d/init.d/目录下。系统服务都是独立运行的守护进程包括:syslogd和cron等。运行独立的守护进程工作方式称作:stand-alone。它Unix传统的C/S模式的访问模式。服务器监听(Listen)在一个特点的端口上等待客户端的联机。如果客户端产生一个连接请求,守护进程就创建(Fork)一个子服务器响应这个连接,而主服务器继续监听。以保持多个子服务器池等待下一个客户端请求。stand-alone模式工作原理见图1。

图1 stand-alone工作模式
工作在stand-alone模式下的网络服务有route、gated。另外是大家最熟悉是Web服务器:Apache和邮件服务器Sendmail、域名服务器Bind。因为这些负载很大服务器上,预先创子服务器,可以通过客户的服务速度。在Linux系统中通过stand-alone工作模式启动的服务由/etc/rc.d/下面对应的运行级别当中的符号链接启动。
(2)xinetd模式
从守护进程的概念可以看出,对于系统所要通过的每一种服务,都必须运行一个监听某个端口连接所发生的守护进程,这通常意味着资源浪费。为了解决这个问题,Linux引进了“网络守护进程服务程序”的概念。Redhat Linux 9.0使用的网络守护进程是xinted(eXtended InterNET daemon)。和stand-alone模式相比xinted模式也称 Internet Super-Server(超级服务器)。xinetd能够同时监听多个指定的端口,在接受用户请求时,他能够根据用户请求的端口不同,启动不同的网络服务进程来处理这些用户请求。可以把xinetd看做一个管理启动服务的管理服务器,它决定把一个客户请求交给那个程序处理,然后启动相应的守护进程。xinetd模式工作原理见图3。

图3 xinetd工作模式
和stand-alone工作模式相比,系统不想要每一个网络服务进程都监听其服务端口。运行单个xinetd就可以同时监听所有服务端口,这样就降低了系统开销,保护系统资源。但是对于访问量大、经常出现并发访问时,xinetd想要频繁启动对应的网络服务进程,反而会导致系统性能下降。察看系统为Linux服务提供那种模式方法在Linux命令行可以使用pstree命令可以看到两种不同方式启动的网络服务。一般来说系统一些负载高的服务:sendmail、Apache服务是单独启动的。而其他服务类型都可以使用xinetd超级服务器管理。查看目前运行的守护进程可以使用命令:“pstree”
三、守护进程管理工具
Linux提供了三种不同的守护进程管理工具:redhat-config-services、ntsysv、chkconfig,可以根据具体需要灵活运用。
(1) redhat-config-services
redhat-config-services是一个一个图形化应用程序,它显示了每项服务的描述,以及每项服务是否在引导时启动(运行级别3、4、5),并允许你启动、停止、或重新启动/etc/rc.d/init.d 中的哪些 SysV 服务,哪些 xinetd 服务。要从桌面启动服务配置工具,点击面板上的「主菜单」 => 「系统设置」 => 「服务器设置」 => 「服务」,或在 shell 提示下,键入命令:“redhat-config-services” (见图4)。

图4 redhat-config-services配置工具
redhat-config-services列出了 /etc/rc.d/init.d 中的服务和由 xinetd 控制的服务。点击左侧列表中的服务名来显示该服务的简短描述以及它的服务状态。如果这个服务不是 xinetd 服务,状态窗口会显示该服务目前是否在运行。如果该服务被 xinetd 所控制,状态窗口会显示「xinetd 服务」这个短语。要立即启动、停止、或重新启动某项服务,从列表中选择该项服务,然后点击工具栏上的相应按钮(或从「行动」拉下菜单中选择行动)。如果该服务是一个 xinetd 服务,行动按钮会被禁用,因为它们不能被单个地启动或停止。 如果你通过选择或取消选择服务名旁的复选箱来启用或禁用了 xinetd 服务,你必须从拉下菜单中选择「文件」 => 「保存改变」来重新启动 xinetd,并立即启用或禁用你所改变的 xinetd 服务。xinetd 还被配置成自动记忆设置。你可以同时启用或禁用多个 xinetd 服务,在结束后再保存改变。
(2)ntsysv
ntsysv 工具为激活或停运服务提供了简单的界面。你可以使用 ntsysv 来启动或关闭由 xinetd 管理的服务。你还可以使用 ntsysv 来配置运行级别。按照默认设置,只有当前运行级别会被配置。要配置不同的运行级别,使用 --level 选项来指定一个或多个运行级别。譬如,命令 ntsysv --level 345 配置运行级别3、4、和5。 ntsysv 的工作界面见图1。使用上下箭头来上下查看列表。使用空格键来选择或取消选择服务,或用来“按”「确定」和「取消」按钮。要在服务列表和「确定」、「取消」按钮中切换,使用 [Tab]键。* 标明某服务被设为启动。[F1] 键会弹出每项服务的简短描述。
(3)chkconfig
chkconfig 命令也可以用来激活和解除服务。chkconfig --list 命令显示系统服务列表,以及这些服务在运行级别0到6中已被启动(on)还是停止(off)。chkconfig 还能用来设置某一服务在某一指定的运行级别内被启动还是被停运。譬如,要在运行级别3、4、5中停运 nfs 服务,使用下面的命令:
chkconfig --level 345 nfs off
四、合理选择守护进程规避安全隐患
运行不必要或有漏洞的守护进程会给操作系统带来安全和性能上的影响。对于系统安全来说,如果操作系统中的任何一个漏洞,都可能使整个系统受到攻击。所以,增加系统安全的最佳办法就是尽量监视系统的功能。文章开始介绍了重要的守护进程,其中“crond、syslog、keytable、xinetd、kudzu、iptables”等是需要运行的,echo、echo-udp、daytime、daytime-udp、chargen、chargen-udp主要是做调试用,普通用户基本用不到,可以关闭。
r字开头的守护进程:rsh、rstatd、rsync、rusersd、rwalld这些命令都是Berkley远程命令,因为都以字母r开头,故称r*命令。主要使用来使一台计算机上的某个用户以相同的帐户远程执行另一台计算机的一个程序。但是,r命令已经被证实存在安全风险。对于确实需要的守护进程,应该尽量选用最新的版本程序,并增加其安全防范。
另外我们还要合理选择守护进程例如innd是运行新闻组服务的进程,如果用户不做Usenet服务器,应该关掉。
总结:
基于开放源代码的Linux给用户提供了这样一个平台:可以根据自己的软、硬件环境,定制自己的Linux守护进程。因此,根据每个用户不同的应用范围定制应用环境,可以将Linux系统的安全和性能提升到新的高度。
-----------------------------------------------------------------------------------
最近笔者重装了一遍Fedora core 2,安装类型为Workstation,没有安装X-Window环境。安装完毕后,执行ntsysv对系统所有的启动服务进行设置,发现有一些服务比较陌生,所以就就写了这篇文章,对系统所有的启动服务进行一个简单的总结,希望和大家一起来分享。
服务名称
含义
acpid
配置文件:/proc/acpi/event
预设端口:无
说明:Advanced Configuration and Power Interface,为替代传统的APM电源管理标准而推出的新型电源管理标准。
是否需要启动:如果你需要对电源进行管理,那就需要启动。
anacron
配置文件:/etc/anacron
预设端口:无
说明:一个自动化运行任务。Red Hat Linux 随带四个自动化任务的工具:cron、 anacron、at、和 batc。当你的Linux主机并不是全天候开机,这个anacron就可以帮你执行在“crontab”设定的时间内没有执行的工作。举例来说,当你的主机在晚上12:00会自动关闭,但是偏偏crontab这个例行性工作是在4:00工作,这个时候例行性工作就不能起作用了。不过利用anacron就能做到。
是否需要启动:如果主机已经24小时开机,而且运行了cron,那么这个守护程序就不需要启动了。
apmd
配置文件:/etc/sysconfig/apmd
预设端口:无
说明:Advanced Power Management,高级电源管理。传统的电源管理标准。一般系统都会同时支持APM和APMD两种标志,但系统加载时只需加载一个即可。对于笔记本电脑比较有用,可以了解系统的“电池电量”。
是否需要启动:如果我们使用的是台式电脑或一直开机的机型,就不需要使用这个守护程序。
atd
配置文件:/etc/at.allow,/etc/at.deny
预设端口:无
说明:一个自动化运行任务。
是否需要启动:通常需要启动。不过如果你一直使用cron,那么也可以不启动。
autofs
配置文件:/etc/rc.d/init.d/autofs
预设端口:无
说明:实现光盘、软盘的自动加载。
是否需要启动:一般不需要启动。
chargen
chargen-udp
预设端口:TCP/UDP 19
说明:Character Generator Protocol,一种网络服务,主要功能是提供类似远程打字的功能。
更多细节:
http://www.networksorcery.com/enp/RFC/Rfc864.txt

是否需要启动:为安全起见,尽量关闭这个服务。
cpuspeed
说明:监测系统空闲百分比,降低或加快CPU时钟速度和电压从而在系统空闲时将能源消耗降为最小,而在系统繁忙时最大化加快系统执行速度。
更多细节:
http://altlinux.org/index.php?module=sisyphus&package=cpuspeed
是否需要启动:需要启动。
crond
配置文件:/etc/crontab
预设端口:无
说明:用来执行例行性命令的守护程序。
是否需要启动:必须启动。
cups
配置文件:
CUPS服务器配置文件:/etc/cups/cupsd.conf
CUPS客户端配置文件:/etc/cups/client.conf
CUPS打印机配置文件:/etc/cups/printers.conf
CUPS中类(class)配置文件:/etc/cups/classes.conf
说明:Common UNIX Printing System,公共UNIX打印支持,为Linux提供打印功能。
是否需要启动:如果不安装打印机,就不需要启动。
cups-lpd
预设端口:无
说明:CUPS Line Printer Daemon ("LPD"),提供打印功能。
是否需要启动:如果不安装打印机,就不需要启动。
daytime
daytime-udp
预设端口:TCP 13
说明:Daytime协议(RFC867)是一个简单的协议,为客户机实现从远程服务器获取日期和时间的功能。
是否需要启动:不用启动。
echo
echo-udp
预设端口:7
说明:服务器回显客户数据服务。
是否需要启动:不用启动。
gpm
配置文件:/etc/sysconfig/mouse
预设端口:无
说明:General Purpose Mouse Daemon ,gpm为文本模式下的Linux程序如mc(Midnight Commander)提供了鼠标的支持。它也支持控制台下鼠标 的拷贝,粘贴操作以及弹出式菜单。
是否需要启动:没必要的话,建议不要启动。
iptables
说明:防火墙。
是否需要启动:必须启动。
irda
Infrared Data Association,是一个实现红外无线数据传输的工业标准。
irqbalance
对多个系统处理器环境下的系统中断请求进行负载平衡的守护程序。
是否需要启动:如果你只安装了一个CPU,就不需要加载这个守护程序。
isdn
Integrated Services Digital Network,综合数字服务网络。提供对isdn设备的支持。
kudzu
配置文件:
/etc/sysconfig/hwconf
/etc/sysconfig/kudzu
说明:硬件自动检测程序,会自动检测硬件是否发生变动,并相应进行硬件的添加、删除工作。当系统启动时,kudzu会对当前的硬件进行检测,并且和存储在/etc/sysconfig/hwconf中的硬件信息进行一一对照,如果某个硬件从系统中被添加或者删除时,那么kudzu就会察觉到,并且通知用户是否进行相关配置,然后修改/etc/sysconfig/hwconf,使硬件资料与系统保持同步。如果/etc/sysconfig/hwconf这个文件不存在,那么kudzu将会从/etc/modprobe.conf,/etc/sysconfig/network-scripts/和/etc/X11/XF86Config中探测已经存在的硬件。
是否需要启动:如果启动kudzu,则每次启动系统,都会检查新硬件(checking new hardware),会延长系统启动的时间。如果你不打算增加新硬件,那么就可以关闭这个启动服务,以加快系统启动时间。
mdmonitor
与RAID设备相关的守护程序。
mdmpd
与RAID设备相关的守护程序。
messagebus
D-BUS是一个库,为两个或两个以上的应用程序提供一对一的通讯。
dbus-daemon-1是一个应用程序,它使用这个库来实现messagebus守护程序。多个应用程序通过连接messagebus守护程序可以实现与其他程序交换信息。
更多细节:
http://www.freedesktop.org/software/dbus/doc/dbus-daemon-1.1.html
microcode_ctl
可以编码以及发送新的微代码到kernel以更新Intel IA32系列处理器(Pentium Pro,PII,PIII,Pentium 4,Celeron, Xeon 等等 – 全部 P6 以及更高,不包括 pentium classics)。
更多细节:
http://www.urbanmyth.org/microcode/
  
http://microcodes.sourceforge.net/
netdump
News Backup Dump Server,远程备份服务器。
netfs
Network Filesystem Mounter,安装和卸载NFS、SAMBA和NCP网络文件系统。
netplugd
配置文件:
/etc/netplug/netplugd.conf
/etc/netplug.d/netplug
说明:network cable hotplug management daemon,netplugd是一个守护程序,可以监控一个或多个网络接口的状态,当某些事件触发时运行一个外部脚本程序。
更多细节:
http://people.debian.org/~enrico/netplugd.html

network
在系统启动时激活所有的网络接口。
nfs
网络文件系统。
nfslock
NFS是一个流行的通过TCP/IP网络共享文件的协议,此服务提供了NFS文件锁定功能。
ntpd
配置文件:/etc/ntp.conf
说明:Network time Protocol daemon,网络时间校正协议。简单的说,NTP是用来使系统和一个精确的时间源保持时间同步的协议。
推荐大家看一篇文章:《NTP-让网络里的电脑时间精确到毫秒》
发表在2004年12月份的《在线技术》杂志第63页
pcmcia
Pcmcia卡,支持笔记本电脑的PCMCIA 设备,如调制解调器, 网络适配器, SCSI卡等等。
portmap
Portmap守护程序为RPC服务,如NIS和NFS提供动态端口的分配。
psacct
包括几个工具用来监控进程活动的工具,包括ac,lastcomm, accton 和sa。
random
说明:快速的将系统的状态在随机的时间内存到景象档案中,对于系统相当重要。因为在开机之后,系统会迅速的恢复到开机之前的状态。
是否需要启动:必须启动。
rawdevices
在使用集群文件系统时用于加载raw设备的守护程序。
readahead
readahead_early
配置文件:/etc/readahead.early.files  /etc/readahead.files
说明:readahead和readahead_early是在Fedora core 2中最新推出的两个后台运行的守护程序。其作用是在启动系统期间,将启动系统所要用到的文件首先读取到内存中,然后在内存中进行执行,以加快系统的启动速度。而上面两个配置文件就保存着将要读取到内存的文件列表。
rhnsd
Red Hat 网络服务。通知你有关官方的安全信息以及为你的系统打补丁。
rpcgssd
rpcidmapd
rpcsrcgssd
说明:gestion NFS v4,是Linux 2.6内核新添的功能。
是否需要启动:不需要启动。
rsync
remote sync,远程数据备份工具。
saslauthd
使用SASL的认证守护程序。
sendmail
邮件服务器。
services
一个内部xinetd服务,用于监听活动的服务。
sgi-fam
实现实时数据镜像。监控文件的变更,提供一个应用程序API接口用来当指定的文件火目录改变时及时通知。
smartd
Self Monitor Analysis and Reporting Technology System,监控你的硬盘是否出现故障。
sshd
配置文件:
OpenSSH服务器配置文件:/etc/ssh/sshd_config
OpenSSH客户端配置文件:/etc/ssh/ssh_config
预设端口:22
说明:Secure Shell Protocol,实现安全地远程登陆管理主机。
是否需要启动:如果想实现远程管理,就需要启动。
syslog
配置文件:/etc/syslog.conf
说明:记录所有的系统行为。
是否需要启动:必须启动。
time
从远程主机获取时间和日期,采用TCP协议。
time-udp
从远程主机获取时间和日期,采用UDP协议。
vncserver
VNC (Virtual Network Computing,虚拟网络计算),它提供了一种在本地系统上显示远程计算机整个“桌面”的轻量型协议。
更多细节:
http://www.realvnc.com/

xfs
预设端口:TCP 7100
说明:x font server,X Window字型服务器,为本地和远程X服务器提供字型集。
是否需要启动:如果使用run-level为5的图形界面,那么就需要启动。
xinetd
配置文件:/etc/xinetd.conf
说明:xinetd作为inetd的后续版本,负责管理系统中不频繁使用的服务,这些服务程序在有请求时才由xinetd服务负责启动运行,一旦完成服务请求服务程序结束运行,这样可以有效地减少对系统资源的占用率。通常,xinetd管理的程序有telnet、ftp、rsh和rlogin。关闭inetd也就关闭了这些由它管理的服务。
更多细节:
http://www.xinetd.org/

是否需要启动:必须启动。
yum
配置文件:/etc/yum.conf
说明:Yellow Dog UpdaterModified,是一个自动更新、安装和删除RPM软件包的管理程序,它会自动计算软件包的管理程序,并判断哪些软件应该安装,哪些软件则不必安装。
更多细节:
http://linux.duke.edu/projects/yum/
是否需要启动:以系统管理策略而决定是否启动。
    一口气写了这么多服务,想必大家也看累了吧。大家再检查一下,还没完。众所周知,为了系统的安全起见,我们不可能把所有的服务都启动了。越简单就越安全,一个系统安装完毕后,我们只需要启动一些必备的服务以保证系统能够正常使用就行了,其余用不到的服务可以暂时关闭。下面是我列出的需要启动的服务。另,本人水平有限,仅供参考。
acpid:提供高级电源管理。
cpuspeed:可以提高系统运行效率。
crond:执行例行性程序。
Iptables: 防火墙。
Kudzu:自动检测硬件的变更。
Network: 激活网络接口。
Random:加快系统的启动。
Readahead和Readahead_early:加快系统的启动。
Syslog:把各类事件写入日志。

    另外,还有一些服务笔者还是不太明白,希望大家能帮我解答。这些服务有:mdmonitor、mdmpd、messagebus、netplugd、random、rpcgssd、rpcidmapd、rpcsrcgssd、sgi-fam、smartd。如有新的体会,我会继续修改这篇文章的。

参考文献
[1] 《Linux Daemons and Services》
http://www.sorgonet.com/linux/linuxdaemons/

[2] 《鸟哥的Linux私房菜》
http://www.vbird.org

[3] 《Red Hat Linux 9 系统管理》
  读者评论
  hunter  在2006-04-05 16:50  发表评论:
  谢谢,  对我帮助很大,
  老兔  在2005-09-12 17:56  发表评论:
  mdmonitor
mdmonitor  是用来监视md设备的,md设备是利用Linux核心提供的软件RAID功能建立的RAID阵列。软RAID可以用很低廉的价格实现很高的容量,曾经在2002年用8块80G的普通的IDE硬盘建立过0.56T的软件RAID5阵列,当时整台机器只花了1.3万,而且性能不错,阵列的持续传输率能到76MBytes/s,如果去买一台相同容量的硬件SCSI阵列的机器,当时的价格至少要5万块。穷穷的小公司用Linux软RAID是非常好的。现在,2.5万左右能搞一台容量2.4T,用软件RAID6的SATA阵列。(哦,顺便提一句,加5000块就能买一块Adaptec的8口硬件SATA  RAID阵列卡了,硬件RAID无论性能和可靠性都高多了,现在已经不时兴用软件RAID做大容量存储了,危险,2.4T数据,出了问题都没有地方备份……)
记得2002年,那个时候还没有mdmonitor,管理RAID5阵列非常不方便,如果阵列中有一块硬盘出毛病了,没有注意到,等到有两块硬盘都出问题的时候……而且两块硬盘又坏的地方相同……哭都来不及。
用mdmonitor监视软件RAID阵列,出了毛病可以立即收到一封e-mail。
mdmpd
mdmpd是用来管理多路径磁盘访问的软件RAID阵列的,就是那种一块磁盘用多个控制器去访问,当一个控制器失效的时候,另一个控制器仍然可以访问硬盘。用得起多路径磁盘访问的公司绝对不可能用软件RAID,所以这个服务完全是垃圾。
smartd
smartd是专门监视支持S.M.A.R.T.技术的硬盘的,过一段时间就对硬盘做检测,能发现一些隐患。查看结果需要用到一个叫smartctl的程序,可以得到一个关于硬盘测试结果的报告:
===  START  OF  INFORMATION  SECTION  ===
Device  Model:          ST380021A
      .
194  Temperature_Celsius          0x0022      043      060      000        Old_age      Always              -              43
      .
SMART  Self-test  log  structure  revision  number  1
Num    Test_Description        Status                                    Remaining    LifeTime(hours)    LBA_of_first_error
#  1    Extended  offline        Completed  without  error              00%          25961                  -
#  2    Short  offline              Completed  without  error              00%          25957                  -
#  3    Short  offline              Completed  without  error              00%          25937                  -
报告中有你的硬盘型号、当前温度、到现在为止一共运行了多少小时、有没有错误……等等很多信息,篇幅有限,不都列出了。
smartd对于仍然在服务器中使用IDE硬盘的人来说,这是一个好东东,一定要用。对于那些特别喜欢知道自己硬盘温度,生怕硬盘热坏了的人,这就更是一个好东东了,Linux下想知道硬盘温度,这恐怕是惟一的选择。



===========================================================================================================================
各個服務的簡單說明
隨著 Linux 上面軟體支援性越來越多,加上自由軟體蓬勃的發展, 我們可以在 Linux 上面用的 daemons 真的越來越多了。所以,想要寫完所有的 daemons 幾乎是不可能的,因此,鳥哥這裡僅介紹幾個很常見的 daemons 而已, 更多的資訊呢,就得要麻煩您自己使用 ntsysv 或者是 vi /etc/init.d/* 裡面的檔案去瞧一瞧囉~ ^_^
Stand Alone Daemons
服務名稱
  • 參數檔
  • 預設啟動的 port number
  • 鳥哥的建議:是否需要啟動?
    基本說明
    anacron
  • /etc/anacrontab
  • 不需要使用 port
  • 全天候啟用的主機,不需要開啟這個服務
    當你的 Linux 主機並不是全天候開機的時候,這個 anacron 就可以幫你執行在『
    crontab
    』既定的時間內沒有執行的工作!舉個例子來說,當你的主機在晚上 12:00 會自動關閉,但是偏偏 crontab 這個例行性工作是在 4:00 工作, 這個時候例行性工作不是都沒有做到嗎?嗯! anacron 就可以使用啦!
    apmd
  • /etc/sysconfig/apmd
  • 不需要使用 port
  • 一般主機不太需要這個 daemon
    apmd 是 Adventage Power Management daemon 的縮寫,顧名思義,可以用來瞭解系統的『電池電量』, 如果對於手提式電腦才有需要吧我想!
    atd
  • /etc/at.allow, /etc/at.deny
  • 不需要使用 port
  • 若有啟動 cron ,或許可以忽略
    這個總該不陌生了吧!就是
    僅進行一次的工作排程
    囉! 如果忘記了!趕緊去查看一下!
    autofs
  • /etc/sysconfig/autofs
  • 不需要使用 port
  • 如果是伺服器,不需要啟動,如果是 Desktop,建議使用
    如果你的 Linux 是用來做為伺服器的,那麼這個服務就不需要啟動了。 因為這個服務可以自動掛載很多的檔案系統與裝置,舉例來說,自動掛載光碟啊、USB硬碟啊等等的。 如果是主機,我們可以自己好好的控制,不需要系統自動掛載。如果是個人桌上型電腦, 那麼啟動這個 daemon 也不錯!
    crond
  • /etc/crontab
  • 不需要使用 port
  • 務必啟動啊!
    用來
    執行例行性命令
    的 daemon ,請務必要啟動他!
    cups
  • /etc/printcap, /etc/cups/*
  • 預設使用 port 631
  • 沒有印表機的話,就不要啟動
    這個服務在管理 Linux 主機上面的印表機的! 他可以用來作為本機印表機的管理,也可以用來管理網路印表機, 全名為 Common UNIX Printing System (CUPS)。如果您的網路環境當中有印表機, 而且想要透過 Linux 來提供給所有用戶使用,那麼就可以管理一下 cups 囉~
    gpm
  • /etc/sysconfig/mouse
  • 不需要使用 port
  • 不需要啟動的
    在文字模式裡面可以使用 mouse 來從事『複製、貼上、移動游標』等等的功能! 如果你是個教師,需要使用滑鼠在純文字介面底下秀出結果的話, 再使用這玩意就好了。基本上,不需要啟動他!
    httpd
  • /etc/httpd/conf/httpd.conf, /etc/sysconfig/httpd
  • 使用 port 80 (and/or) 443
  • 除非需要設定 WWW 伺服器,否則不要啟動
    這個玩意兒可有趣的很哩~一般來說,新手最喜歡架設 Web 網站囉, 而 WWW 伺服器,就是這個玩意兒啊~更詳細的資訊請參考伺服器篇的內容
    iptables
  • /etc/sysconfig/iptables
  • 不需要使用 port
  • 連上 Internet 的主機務必啟動
    這個傢伙就是 Linux 上面有名的『防火牆』啦~如果你的 Linux 是在區網內, 而且沒有連上 Internet 的話,那麼這個防火牆機制可以暫時不要啟動, 因為可能會抵擋掉你主機所提供的服務。如果連上了 Internet ,不開這個, 會死的很慘~
    kudzu
  • /etc/sysconfig/kudzu
  • 不需要使用 port
  • 如果系統已經穩定,不需要啟動
    這個 daemon 預設是啟動的,他會在開機的時候去偵測你的硬體, 如果發現硬體有異動,或者是有新增其他的硬體, 那麼 kudzu 服務會主動的以 Fedora 相關的設定軟體來設定你的新硬體。 不過,對於穩定的系統來說,實在沒有必要在開機的時候偵測一次硬體,因為....很慢~
    named
  • /etc/named.conf
  • 使用 port 53
  • 不需要啟動,除非是 DNS Server
    這是個很複雜的玩意兒,那就是 DNS (Domain Name System)。除非你真的很瞭解 DNS, 否則這個服務不需要啟動的!
    netfs
  • /etc/fstab
  • 不需要使用 port
  • 如果你的主機有預設掛載網路上的磁碟檔案系統時,才開啟。
    這個服務在自動的掛載 /etc/fstab 裡頭記錄的關於網路檔案系統,如 NFS, SMB (網芳) 等等,如果你的主機本身並沒有掛載來自網路上的 filesystem,不需要啟動。
    network
  • /etc/sysconfig/network, /etc/sysconfig/network-scripts/*
  • 不需要使用 port
  • 務必啟動
    看檔名就知道啦!是用來管理網路的,所以,當然要啟動了。 不論你有沒有網路卡,這個服務都要啟動,因為至少 network 會驅動 lo 這個網路介面。 更多的網路相關資訊,參考伺服器篇的內容。
    nfs
    nfslock
  • /etc/sysconfig/nfs
  • 隨機使用 port,與 portmap 服務有關
  • 不需要啟動
    NFS 為 Network File System 的縮寫,我們會在伺服器篇談這個服務, 一般來說,不需要啟動這個玩意兒~
    ntpd
  • /etc/ntp.conf, /etc/sysconfig/ntpd
  • 使用 port 123
  • 不需要啟動
    這個服務的全名是:Network Time Protocol,意思就是在進行網路校時的一個服務。 一般來說,不需要啟動他。
    portmap
  • /sbin/portmap 直接啟動
  • 使用 port 111
  • 除非你有啟用類似 NFS 的服務,否則不需要啟動
    這個咚咚與很多 RPC 的服務有關,例如 NFS 等等。一般來說,如果你的 Linux 尚未連上 internet, 這個服務不需要啟動。不過,為了方便起見,各主要 linux distributions 都預設啟動這個服務的。 鳥哥通常是關掉他!哈哈!
    postfix
    sendmail
  • /etc/postfix/* 或 /etc/mail/*
  • 使用 port 25
  • 預設要啟動
    這個就是郵件伺服器啦!由於近來網路垃圾大增,所以,目前所有的 Linux distributions 預設都要啟動 postfix 之類的郵件伺服器後,我們發出的信件才會接收或者是傳送。 預設的情況下,一定會有一個郵件伺服器啟動的,不要關閉他~ 否則我們主機上面的帳號彼此之間無法以 email 傳送資料喔!
    smb
  • /etc/samba/*
  • 使用 port 137~139, 445 等
  • 不需要啟動
    這個服務其實就是模擬 Linux 成為 Windows 的網路上的芳鄰上頭的主機啦~ 由於我們還沒有連上 Internet 啊,所以自然不需要啟動他啦~
    sshd
  • /etc/ssh/*
  • 使用 port 22
  • 務必啟動
    這個是取代 telnet 的遠端連線伺服器 daemon ,幾乎所有的 Linux distributions 預設都會啟動他~ 我們也可以透過這個玩意兒讓遠端主機連線進來啊!所以當然是啟動的啊!
    syslog
  • /etc/syslog.conf
  • 不需要使用 port
  • 務必啟動
    這個是登錄檔記錄的一個重要的 daemon ,沒有他,你的主機幾乎沒有事後監控的功能~ 所以請務必啟動。我們會在
    認識登錄檔
    當中來談這個咚咚~
    xfs
  • 使用 /usr/sbin/chkfontpath 直接啟動與偵測
  • 使用 socket 7100
  • 如果是純文字介面,則不需要啟動
    X Font Server, xfs,顧名思義,他是用來管理 X Window 的字形的一個服務, 如果你是 run level 5 ,或者是想要啟動 X Window 的話,那麼這個玩意兒就不能不啟動。 不過,如果你跟鳥哥一樣都是使用純文字介面的話,這個玩意兒不用啟動啦!
    xinetd
  • /etc/xinetd.d/*, /etc/xinetd.conf
  • 不一定,要看設定值
  • 務必啟動
    剛剛上頭才講過這個玩意兒,不會就忘了吧?務必啟動喔!
    Super Daemons
    chargen
    chargen-udp
  • 預設使用 port 19
  • 不需要啟動
    主要的功能在於提供類似遠端打字的咚咚吧!
    daytime
    daytime-udp
  • 預設使用 port 13
  • 不需要啟動
    用來作為 daytime 的服務,這是 NTP (Network Time Protocol) 的上一代, 目的在進行時間的校正工作。不過,因為他不會計算網路連線過程當中的遲滯時間, 並且是以明碼傳送,因此除了特殊目的外,目前已經很少使用這玩意兒了
    krb5-telnet
  • 預設使用 port 23
  • 不需要啟動
    用來取代傳統的 telnet 服務!可提供 krb 5 的驗證機制。
    gssftp
  • 預設使用 port 21
  • 不必啟動
    用來取代傳統的 ftp server,可提供 krb 5 的驗證機制

    本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u/21012/showart_182187.html
  • 您需要登录后才可以回帖 登录 | 注册

    本版积分规则 发表回复

      

    北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
    未成年举报专区
    中国互联网协会会员  联系我们:huangweiwei@itpub.net
    感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

    清除 Cookies - ChinaUnix - Archiver - WAP - TOP