Problem mit xinetd-Argumenten

Problem mit xinetd-Argumenten

ich habe dieses BASH-Skript namens „blah“ erstellt, das so etwas Einfaches macht (siehe unten):

#./blah -x "bindas"
hello bindas

ich möchte ein Skript mit xinetd und dynamischer Variable ausführen, so ähnlich wie das folgende Beispiel

#telnet localhost 809 "bindas"
hello bindas. 

ich werde es nicht mit Telnet verwenden, tatsächlich wird eine andere Anwendung versuchen, mit diesem Server über Port 809 zu kommunizieren. Wie kann ich meine xinetd-Datei so einrichten, dass sie Argumente annimmt? Ich habe herausgefunden, dass server_args Parameter annehmen kann, aber wie wäre es mit so etwas, wird das funktionieren?

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

Antwort1

Nein, das wird nicht funktionieren.

Über Ihren TCP-Socket empfangene Eingaben werden von xinetd nicht interpretiert und können daher nicht als Befehlszeilenargument an Ihr Skript übergeben werden. Ihr Skript muss alle Daten lesen, die als Standardeingabe empfangen werden, z. B.

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

verwandte Informationen