Redhat 7.x 中xinetd完全指南( 九 )



xinetd;–pid;2>;/var/run.xinetd.pid

和xinetd一起使用的可用信号 xinetd进程也基于收到的信号采取特定的行动 。表16描述了它接受的每个信号的功能 。注意每当增加了新服务或defaults项,或每当改变了任何服务的如下属性:protocol,socket_type,type或wait时,必须用SIGTERM(或更简单的TERM)信号中止xientd 。每当给xinetd发布一个软性或硬性重配置信号时,将写入例19中所示类型的登记项 。这个特定例子是硬性重配置的结果 。注意这次硬性重配置的结果是中止了一项服务(用dropped=1标识) 。



表;5 xinetd的标记

标 记
描 述

-d
调试模式 。输出可和调试器如gdb一起使用

-sysllog;facility
指定syslogd工具 。是daemon,;auth,;user和loca10-7其中之一

-filelog;file
指定登记写到file而不是syslog中 。必须是完整路径名

-fconfig_file
指定配置文件 。必须是完整路径名 。缺省是/etc/xinetd.conf

-pid
把PID写入标准错误中

-loop;rate
指定每秒钟分叉的进程数 。缺省是10.对较快机器来说可能希望改变它

-reuse
设置可重用的TCP;socket,这意味着以前的实例运行时也可启动其他进程 。当和flags属性一起使用时,有更特殊的服务控制(参看表10.10)

-limit;numproc
限制由xinetd启动的同时运行的进程总数为numproc

-
限制同时发生的RFC1413请求数为limit

-shutdownprocs;limit
当log_on_failure属性中使用了RECORD值时,xinetd分叉称为shutdown的服务以收集服务终止时的信息 。该选项限制同时运行的shutdown进程总数为limit

-cc;interval
使xinetd每隔interval秒运行对其内部状态的一致性检查 。用killall;–IOT;xinetd可手工实现


表18;xinetd信号

信 号
作 用

SIGUSR1
软性重配置 。重读/etc/xinetd.conf并作相应调整

SIGUSR2
硬性重配置 。重读/etc/xinetd.conf并杀死和配置文件中的建立准则不再匹配的所有进程 。例如,如果一个客户机连接到这个服务器且又增加到no_access表中,那么这个信号会终止该客户机的会话

SIGQUIT
终止xinetd但不终止它分叉的任何进程

SIGTERM
终止xinetd分叉的所有进程;然后终止xinetd

SIGHUP
把xinetd状态信息写到/tmp/xinetd.dump中

SIGIOT
检查内部数据库毁坏情况并报告结果


例19 xinetd硬性重配置的登记记录

Apr;15;14:42:31;topcat;xinetd[1402]:Starting;hard;reconfiguration
Apr;15;14:42:31;topcat;xinetd[1402]:readjusting;service;servers
Apr;15;14:42:31;topcat;xinetd[1402]:readjusting;service;servces
Apr;15;14:42:31;topcat;xinetd[1402]:readjusting;service;telnet
Apr;15;14:42:31;topcat;xinetd[1402]:readjusting;service;shell
Apr;15;14:42:31;topcat;xinetd[1402]:readjusting;service;login
Apr;15;14:42:31;topcat;xinetd[1402]:readjusting;service;talk
Apr;15;14:42:31;topcat;xinetd[1402]:readjusting;service;ntalk
Apr;15;14:42:31;topcat;xinetd[1402]:readjusting;service;pop-2
Apr;15;14:42:31;topcat;xinetd[1402]:readjusting;service;pop-3
Apr;15;14:42:31;topcat;xinetd[1402]:readjusting;service;imap
Apr;15;14:42:31;topcat;xinetd[1402]:readjusting;service;linuxconf
Apr;15;14:42:31;topcat;xinetd[1402]:readjusting;service;ftp
Apr;15;14:42:31;topcat;xinetd[1402]:Reconfigured:new=1;old=12;dropped=1;(services)


注:确定某个修改的/etc/xinetd.conf文件被读的最可靠方式是停止并重启动xinetd进程 。最好用SIGTERM信号中止xinetd 。如这节中描述的,发给xzinetd一个SIGTERM使它中止(用SIGKILL或信号号9)其控制之下的每个进程 。有时在xinetd的子进程中止之前有一个延时,这意味着如果杀死并立即重启动xinetd,它不可能绑定所有端口(对此xinetd的登记文件----而不是这项服务指定的登记文件----中含一个错误消息) 。这就是为什么sleep3命令出现在例中的stop和start命令间的脚本中 。对TCP服务如telnet和ftp用flags=REUSE属性及其值或指定xinetd自身的-reuse选项可完全消除这个问题 。

推荐阅读