проблема с аргументами xinetd

проблема с аргументами xinetd

Я создал этот скрипт BASH под названием blah, который делает что-то простое, например следующее (см. ниже)

#./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"

Связанный контент