problema com argumentos do xinetd

problema com argumentos do xinetd

eu criei este script BASH chamado blah que faz algo simples como isto (veja abaixo)

#./blah -x "bindas"
hello bindas

eu gostaria de executar o script usando xinetd com variável dinâmica, algo semelhante ao exemplo abaixo

#telnet localhost 809 "bindas"
hello bindas. 

não vou usá-lo com telnet; na verdade, algum outro aplicativo tentará se comunicar com este servidor na porta 809. Como posso organizar meu arquivo xinetd para receber argumentos? descobri que server_args pode receber parâmetros, mas que tal algo assim, funcionará?

# 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
}

Responder1

Não, isso não vai funcionar.

A entrada recebida pelo seu soquete TCP não é interpretada pelo xinetd, portanto não pode ser passada como um argumento de linha de comando para o seu script. Seu script precisará ler todos os dados recebidos como entrada padrão, por exemplo

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

informação relacionada