
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"