
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"