xinetd 参数问题

xinetd 参数问题

我创建了一个名为 blah 的 BASH 脚本,它可以执行如下简单的操作(见下文)

#./blah -x "bindas"
hello bindas

我想使用带有动态变量的 xinetd 执行脚本,类似于下面的示例

#telnet localhost 809 "bindas"
hello bindas. 

我不会将它与 telnet 一起使用,实际上其他一些应用程序将尝试通过 809 端口与该服务器通信。我该如何安排我的 xinetd 文件来接受参数?我发现 server_args 可以接受参数,但是像这样的东西怎么样,这会起作用吗?

# This file is being maintained by Puppet.
# DO NOT EDIT

service cont_blah
{
        port            = 809
        disable         = no
        socket_type     = stream
        protocol        = tcp
        wait            = no
        user            = root
        group           = root
        groups          = yes
        server          = /usr/local/bin/blah
        server_args     = -x $1
}

答案1

不,那不行。

通过 TCP 套接字接收的输入不会被 xinetd 解释,因此不能作为命令行参数传递给脚本。脚本需要读取作为标准输入接收的任何数据,例如

#!/bin/bash
read name
echo "Hello $name"

相关内容