29.1 init:基本守护进程
init是系统引导后第一个要运行的进程,它的PID总是1.在启动时,init要么将系统置于单用户模式,要么开始执行将系统带入多用户模式所需的脚本。在引导系统进入单用户模式时,init在终止(按键exit或者ctr+D)单用户shell之后就运行启动文件。
在多用户模式下,init负责保证在每个开启登录功能的设备上能有进程来处理登录。在许多系统上,init也能监管图形化的登录过程,让用户直接登录到X Windows里。
init除了终端管理职责之外,它还要驱除未死的僵进程。
init定义了从0到6七个运行级。0是关机,6是重启。1或者s是单用户模式。每到一个运行级,init将读入相应的启动脚本,启动脚本都放在rc0.d,rc1.d.....等等的文件夹里面。
系统启动之后,可以使用telinit命令改变init的运行级。例如:
telinit 4 强制init进入运行级4
telinit q 重读/etc/inittab文件,应该算是重新启动一次
29.2 cron和atd:调度命令
cron经常用于管理目的的,日志等等。
守护进程atd用at命令,大多数Linux版本也包含anacron这个调度进程,它以一定时间间隔而不是特定的时间;来执行任务。在那些不总是打开的系统上(比如笔记本),anacron特别有用。
29.3 inetd和xinetd:管理守护进程
inetd和xinetd是管理其他守护进程的守护进程。当有工作需要他们的客户守护进程去做的时候,他们就启动这些客户守护进程,一旦完成,他们就让客户进程正常地终止。
xinetd比inetd新,xinetd融入了类似以前通过使用tcpd才能获得的那些安全特性。xinetd也能针对拒绝服务攻击提供更好的保护,它有更好的日志管理功能以及更为灵活的配置语言。目前大多数Linux发行版默认采用xinetd,只有Debian和Ubuntu使用标准的inetd。
xinetd和inetd都只能对通过网络提供服务的守护进程起作用。为了掌握有人尝试访问客户守护进程的时间,xinetd和inetd把自己绑定到正常情况下由不活动的守护进程所管理的网络端口上。当出现一条连接请求时,就启动适当的守护进程,把它的标准I/O通道连接到网络端口上。
因为xinetd/inetd负责管理许多常用的基于网络的服务,所以它在保护系统安全上扮演重要的角色。
xintd的主要配置文件传统上是/etc/xintd.conf,并且都提供一个配置目录/etc/xinetd.d,单个软件包可以把xinetd.conf格式的配置文件放在这个目录下。
inetd的主要配置文件是/etc/inetd.conf:
## smtp stream tcp nowait root /usr/sbin/sendmail sendmail -Am -bs
## submission stream tcp nowait root /usr/sbin/sendmail sendmail -Am -bs
## smtps stream tcp nowait root /usr/sbin/sendmail sendmail -Am -bs
telnet stream tcp nowait root /usr/sbin/tcpd /usr/sbin/in.telnetd
第一列:名称,在带有多个网络接口的主机上,在服务名之前,可以加上若干个以逗号隔开的IP地址后者主机名。例如:ip1,ip2,:telnet.......
第二列:指定了服务使用的套接口类型,不是stream(tcp)就是dgram(udp)
第三列:标明服务所用的协议,几乎总是tcp或者udp。RPC服务在协议类型前冠以rcp/。
第四列:如果被描述的服务能够一次处理多个请求(而不是处理一个请求就退出),那么这一列应该是wait。这个选项让派生出来的守护进程主要在运行就接管端口,inetd等着这个守护进程退出,然后继续监视端口。wait反面是nowait,它让inetd连续监视端口,在它每次接收到一个请求的时候就派生出一个守护进程的新副本。
第五列:给出了运行守护进程的用户名。
剩下的几列给出了守护进程的完整路径及其命令行参数。
29.4 内核的守护进程
Linux内核有几部分是按照类似于用户进程那样来管理的。这些进程有很低的PID号和以开头的名字。还有就是ps下会用中括号把内核的守护进程括起来。
ksoftirqd/N:在负载重时处理软件中断
kacpid:处理ACPI子系统
kblockd:块读写子系统
aio/N:重试异步I/O
kswapd/N:把内存也移到交换区
ata/N:处理串行ATA
scsi_eh_N:处理SCSI出错处理
kjournald:支持日志文件系统
events/N:通用任务队列处理
进程后面的N表明N表明在哪个cpu上。
29.5 打印守护进程
cpusd: CUPS的调度器
lpd: 管理打印
29.6 文件服务守护进程
rpc.nfsd:提供文件服务
rpc.mounted: 响应安装请求
amd和automount: 根据需要安装文件系统
rpc.lockd和rpc.statd:管理NFS锁
rpciod: 缓存NFS数据块
rpc.rquoted: 远程磁盘配额服务
smbd: 向Windows客户端提供文件和打印服务
nmbd: NetBIOS名字服务器
29.7 管理数据库守护进程
ypbind: 定位NIS服务器
ypserv: NIS服务器
rpc.ypxfrd: 传送NIS数据库
lwresd: 轻量级名字解析器库服务器
nscd: 名字服务高速缓存守护进程
29.8 电子邮件守护进程
sendmail: 传输电子邮件
smtpd: 简单邮件传输协议守护进程
popd: 基本的邮箱服务器
imapd: 高级的邮箱服务器
29.9 远程登录和命令执行守护进程
sshd: 安全的远程登录服务器
in.rlogind:过时的远程登录服务器
in.telnetd: 另一种远程登录服务器
in.rshd: 远程命令执行服务器
29.10 引导和配置守护进程
dhcpd: 动态地址分配
in.tftpd: 简单文件传送服务器
rpc.bootparand: 高级的无盘支持
hald: 硬件抽象层(HAL)守护进程
udevd: 设备连接串行化通报
29.11 其他网络守护进程
talkd: 网络聊天服务
snmpd: 提供远程网络管理服务
ftpd: 文件传输服务器
rsyncd: 在多台主机间保持文件同步
routed: 维护路由表
gated: 维护复杂的路由表
named: DNS服务器
syslogd: 处理日志消息
in.fingerd: 查找用户
httpd: 这个不用说了
阅读(1845) | 评论(0) | 转发(0) |