电脑计算机论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 734|回复: 0

Linux之inetd和xinetd介绍,被称为因特网‘超级服务’

[复制链接]
admin 发表于 2022-7-9 11:29:35 | 显示全部楼层 |阅读模式
       我们知道  telnet 、ftp、smtp、pop、apache等这些都是一个服务,而 inetd和xinetd为什么却被称为‘超级服务’呢?
       那是因为 inetd和xinetd 它并不是直接对客户提供服务,它是一个管理服务的进程,它可以同时管理:telnet、ftp、smtp、pop、apache等多个服务,linux原来只有inetd服务,后来才有的xinetd,xinetd守护程序是inetd的替代,它提供许多改进的或新的特性,以及更容易的配置,但两者功能基本相同。
       例如inetd就是通过一个集中的配置文件inetd.conf,用来侦听多个<1024端口连接请求的守护进程,也就是说 inetd可以管理多个服务。这个文件里定义了inetd管理哪些服务,对应哪些端口等,这样inetd服务启动后,系统上初始只有一个inetd进程,这个进程负责监听管理的服务所对应的所有端口。
       例如通过inetd可以同时管理telnet、ftp、smtp、pop3,当客户系统发出到服务器的telnet连接请求时,inetd启动一个telnet服务器进程,由此进程服务此请求,完成服务后即退出,当客户系统发出到服务器的ftp连接请求时,inetd启动一个ftp服务器进程,由此进程完成服务后即退出。

       通过上面的介绍,我们可能觉得可能和我们平时管理服务的方式不一样,我们平时启动服务,都是单独用一条命令,例如 /etc/init.d/snmpd start来实现。下面我们解释一下:
      每个服务启动后都有一个守护进程,比如ssh服务启动后,ps -ef上就能看到有一个sshd的守护进程,守护程序分为2种处理模式:
第一个是stand alone状态的,表示该程序始终监听,一直处于运行状态,例如我们通过 /etc/init.d/snmpd start启动的服务。
第二个是super daemon,它始终处于sleep状态,直到有人唤醒它,xinetd就是一个super daemon,但它的使命是将一个请求转给其他服务,也就是服务的管理者

      而这些服务 telnet 、ftp、smtp、pop、apache等既可以当做独立的一个服务使用命令启动,这时就是stand alone状态,该进程始终监听,一直处于运行状态;这些服务也可以通过inetd来管理,当通过inetd来管理时,系统中初始只有inetd的进程,它负责监听多个端口,监听到某个端口的连接请求时,inetd就会启动相应的进程,然后转给那个进程来处理,处理完成后进程退出。
       服务独立运行的好处是,进程一直运行,不存在对每个请求启动新进程的开销,所以它的效率更高;而inetd模式由于可以同时管理多个服务,且初始只有一个inetd进程,其他服务只有请求连接时才会启动,处理完成后就会退出,因为系统的进程数量就会减少,更加节省服务器性能,但每个请求发生时,都要启动新进程,所以效率会略低一点。
您需要登录后才可以回帖 登录 | 注册

本版积分规则


QQ|手机版|小黑屋|电脑计算机论坛 ( 京ICP备2022023538号-1 )

GMT+8, 2024-11-23 20:22 , Processed in 0.091601 second(s), 21 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表