分类: LINUX
2009-02-07 15:51:15
在Client/Server模式下。服务器监听(Listen)在一个特定的端口上等待客户连接。连接成功
后服务器和客户端通过端口进行数据通信。守护进程的工作就是打开一个端口,并且等待
(Listen)进入连接。如果客户端产生一个连接请求,守护进程就创建(Fork)一个子服务器响
应这个连接,而主服务器继续监听其他的服务请求。
守护进程工作方式:
(1)运行独立的守护进程
独立运行的守护进程由init脚本负责管理,所有独立运行的守护进程的脚本
在/etc/rc.d/init.d/目录下。系统服务都是独立运行的守护进程包括:syslogd和cron等。运行
独立的守护进程工作方式称作:stand-alone。它Unix传统的C/S模式的访问模式。服务器监听
(Listen)在一个特点的端口上等待客户端的联机。如果客户端产生一个连接请求,守护进程就
创建(Fork)一个子服务器响应这个连接,而主服务器继续监听。以保持多个子服务器池等待下
一个客户端请求。工作在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看做一个管理启动服务的管理服务
器,它决定把一个客户请求交给那个程序处理,然后启动相应的守护进程。
和stand-alone工作模式相比,系统不想要每一个网络服务进程都监听其服务端口。运行单个
xinetd就可以同时监听所有服务端口,这样就降低了系统开销,保护系统资源。但是对于访问量
大、经常出现并发访问时,xinetd想要频繁启动对应的网络服务进程,反而会导致系统性能下降
。察看系统为Linux服务提供那种模式方法在Linux命令行可以使用pstree命令可以看到两种不同
方式启动的网络服务。一般来说系统一些负载高的服务: sendmail、Apache服务是单独启动的
。而其他服务类型都可以使用xinetd超级服务器管理。查看目前运行的守护进程可以使用命令:
pstree