problema con los argumentos de xinetd

problema con los argumentos de xinetd

He creado este script BASH llamado bla que hace algo simple como esto (ver más abajo)

#./blah -x "bindas"
hello bindas

Me gustaría ejecutar un script usando xinetd con una variable dinámica, algo similar al siguiente ejemplo

#telnet localhost 809 "bindas"
hello bindas. 

No voy a usarlo con telnet; de hecho, alguna otra aplicación intentará comunicarse con este servidor en el puerto 809. ¿Cómo puedo organizar mi archivo xinetd para que acepte argumentos? Descubrí que server_args puede tomar parámetros, pero ¿qué tal algo como esto? ¿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
}

Respuesta1

No, eso no funcionará.

La entrada recibida a través de su socket TCP no es interpretada por xinetd, por lo que no puede pasarse como argumento de línea de comando a su script. Su secuencia de comandos deberá leer los datos que se reciban como entrada estándar, por ejemplo

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

información relacionada