当前位置: 安卓之星 -> Linux开发 -> 系统守护进程inetd、xinetd与独立守护进程standalone

系统守护进程inetd、xinetd与独立守护进程standalone

作者:网络 发表于: 2016-10-24 点击: 437 次

系统守护进程 /etc/inetd.conf 或/etc/xinetd.conf 适合访问量小
独立守护进程standalone 适合访问量大

proftpd有两种运行模式:Standalone 和 inetd
standalone比较耗资源适合大访问量,inetd会为每一个请求启动一个进程,平时不用的时候不耗资源,我就是自己用用,所以选择inetd模式。
cat /etc/inetd.conf
结果什么都没有。
进一步查看文档得知,现在的Linux基本上用xinetd取代inetd了。但是我在系统里找不到xinetd。恩~,明白了:
sudo apt-get install xinetd
又是瞬间完成。
进入/etc/xined.d目录,看见了几个配置好的项目。我们在加一个ftp吧。
sudo vim ftp
service ftp
{
flags = REUSE
socket_type = stream
instances = 50
wait = no
user = root
server = /usr/sbin/proftpd
log_on_success = HOST PID
log_on_failure = HOST ATTEMPT 
}
启动vsftpd可以采用三种方式:inetd、xinetd和standalone(独立)工作模式。由于目前使用的xinetd扩展了inetd,它比inetd更加高效和实用,包括诸如请求记录、访问控制、将业务与网络接口绑定等改进,所以通常使用xinetd,本文将介绍xinetd以及standalone两种启动方式。
1. xinetd方式启动
使用该启动方式,在上述的配置文件当中,应该将listen=YES设为list=NO,并且将tcp_wrappers=YES设为tcp_wrappers=NO,并且使用如下命令将vsftpd的文档目录拷贝到/etc/xinetd.d目录下:
# cp /usr/share/doc/vsftpd-1.1.3/vsftpd.xinetd /etc/xinetd.d/vsftpd
# vi /etc/xinetd.d/vsftpd
将disable=yes设为disable=no即可。一个关于该启动方式的的配置文件如下所示:
# cat /etc/xinetd.d/vsftpd
# default: on
# description: The vsftpd FTP server serves FTP connections. It uses 
# normal, unencrypted usernames and passwords for authentication.
service ftp
{
socket_type = stream
wait = no
user = root
server = /usr/sbin/vsftpd
nice = 10
disable = no
flags = IPv4
}
现在,就可以使用如下命令来启动vsftpd了。
停止独立运行的vsftpd:
# service vsftpd stop
重新启动xinetd守护进程:
# service xinetd restart
另外一点需要说明的是:如果想在系统启动时就自动运行该服务,那么需要使用setup命令,在网络服务配置的项目中,选中vsftpd守护进程即可。
2. 独立工作模式启动
vsftpd也可以工作在独立工作模式下。这样,我们需要再次打开“/etc/vsftpd.conf”做如下修改:
# Shall the vsftp daemon run in standalone ope

proftpd有两种运行模式:Standalone 和 inetd
standalone比较耗资源适合大访问量,inetd会为每一个请求启动一个进程,平时不用的时候不耗资源,我就是自己用用,所以选择inetd模式。
cat /etc/inetd.conf
结果什么都没有。
进一步查看文档得知,现在的linux基本上用xinetd取代inetd了。但是我在系统里找不到xinetd。恩~,明白了:
sudo apt-get install xinetd
又是瞬间完成。
进入/etc/xined.d目录,看见了几个配置好的项目。我们在加一个ftp吧。
sudo vim ftp
service ftp
{
flags = REUSE
socket_type = stream
instances = 50
wait = no
user = root
server = /usr/sbin/proftpd
log_on_success = HOST PID
log_on_failure = HOST ATTEMPT 
}
具体是什么意思? 其实我也是半懂不懂的,想去xinetd的主页上看看,结果找不到页面。
然后就是配置proftpd本身了。
proftpd的配置文件在/etc/proftpd/proftpd.conf
不愧“pro”这个名字,看上去非常“专业”。很复杂,官方主页上文档也非常复杂。
我现把匿名用户登录那部分打开了。
这段应该在proftpd.conf的最后面。
对于这个配置文件,如果你用过apache httpd,应该看上去很眼熟。
然后重启一下xinetd
sudo service xinetd restart
结果告诉我没有service这个命令。
同样:
sudo apt-get debian-helper-scripts
重启完服务器后,看看ftp已经可以登录了。如果不能登录,你可以试试一下方法看看问题出在哪里。
到/etc/init.d目录下直接调用xinetd start看看有什么信息出来,如果没有什么有用信息。
修改一下xinetd在
start)
apache
最重要的配置选项ServerType standalone | inetd

这个配置选项指定如何运行WEB服务器。Apache可以使用两种方法来运行服务器:standalone(独立的)和inetd(由inetd运行的)。standalone参数表示WEB服务进程以一个单独的守候进程的方式在后台侦听是否有客户端的请求,如果有就生成一个子进程来为其服务。inetd参数表示WEB服务不是以一个单独的守候进程的形式支持。而是由Inetd这个超级服务器守候进程进行代劳,当它收到一个客户端的WEB服务请求的时候,再启动一个WEB服务进程为其服务。从功能的角度看,这两种方法几乎是相同的。但它们之间实际有很大区别,区别在于服务器的性能。一个由inted运行的服务器进程在它结束对请求服务的同时立刻退出。而在standalone模式下,子WWW服务器进程在退出之前要挂起一段时间,这就给它们提供了机会,可以重新用来服务新的请求。

在standalone模式下,不存在对每个请求启动新进程的开销,所以它的效率更高;而inetd模式被认为比standalone模式更具安全性。

standalone模式:

此种模式下,WWW服务器侦听特定端口的连接请求。当客户机发出到特定端口地址的连接请求时,主服务器进程启动子WWW服务进程来服务该请求。另外还需要告诉主服务器进程侦听的特定端口地址,使用命令:

Port [number] (缺省值为80)

inetd模式

inetd是侦听有小于1024的端口连接请求的Internet守护进程(一个服务器进程)。与前面的方法不同,当客户系统发出到WWW服务器的连接请求时,inetd启动一个WWW服务器进程,由此进程服务此请求,完成服务后即退出。如果选择通过inetd服务器来运行Apache,需要编辑/etc/inetd.conf文件为Apache添加一条新的记录:

httpd stream tcp nowait httpd /etc/httpd/bin/httpd -f /etc/httpd/conf/httpd.conf

修改了/etc/inetd.conf文件后,就需要修改/etc/services中添加一行

httpd 80/tcp httpd

做完以上修改后,需要重新启动inetd进程。首先,使用以下命令取得inetd的进程ID:

ps auxw |grep inetd

然后执行命令:kill -HUP <inetd的进程ID>

在RedHat Linux中,默认是采用inetd服务器来运行Apache,所以只要你在安装时选择了httpd,以上工作在安装时就已经代你完成了。

相关文章

相关文章

赶快留言冒泡

  • 评论 (0)
  • 引用通告 (0)
目前还没有任何评论.
目前还没有任何Trackbacks和Pingbacks.
吐个泡浮上去.