我已经安装了xinetd,并编写了一个脚本:
#!/bin/bash
echo "Some text"
touch /home/somefile
我在下面进行了服务配置/etc/xinetd.d/
,基本上当我在配置的端口下连接到本地主机时它就可以工作,因为: 该文件somefile
是由连接到服务时的 touch 命令生成的。我用telnet连接:
telnet localhost someport
我不明白的是 telnet 不输出字符串“Some text”。我该怎么做才能使这项工作成功?
这是 /etc/xinetd.d/ 中的 xinetd 服务配置文件:
# This is the configuration for the tcp/stream echo service.
service my_service_name #not in /etc/services
{
# This is for quick on or off of the service
disable = no
# The next attributes are mandatory for all services
id = my_custom_id
type = UNLISTED
wait = yes
socket_type = stream
protocol = tcp
# External services must fill out the following
user = root
# group =
server = /usr/bin/program_name_here
# server_args =
# External services not listed in /etc/services must fill out the next one
port = 60001
}
答案1
更改wait
为no
可能会解决您的问题。从手册页:
如果其值为yes,则该服务是单线程的;这意味着 xinetd 将启动服务器,然后停止处理服务请求,直到服务器终止并且服务器软件将接受连接。
关键一点是,当 wait 设置为 yes 时,服务器软件应该接受连接,而您的脚本不会这样做。