Gibt es eine einzige Programmversion von inetd?

7

inetd Sie können mehrere Programme mit stdin-Eingabe und stdout-Ausgabe wie Programme mit Eingabe und Ausgabe von und zu Sockets arbeiten lassen und gleichzeitig ihre Hörbuchsen überwachen.

Gibt es ein einfacheres Programm als das, inetddas nur für ein einzelnes Programm funktioniert: Lassen Sie ein einzelnes Programm mit stdin-Eingabe und stdout-Ausgabe wie ein Programm mit Eingabe und Ausgabe von und zu Sockets funktionieren?

Vielen Dank.

Tim
quelle
2
Wenn Ihre Linux-Distribution systemd verwendet, kann systemd dies alles für Sie erledigen (dh Sie benötigen keine zusätzliche Software), indem Sie einfach eine Socket-Einheit und eine entsprechende Service-Einheit konfigurieren , um Ihr Programm auszuführen.
Filbranden

Antworten:

17

Nmaps Ncat kann dies mit seinen -coder -eOptionen tun :

nc -l -c bc

überwacht den Standardport (31337) und wird beim Herstellen einer Verbindung bcmit dem an den Socket angeschlossenen Standardeingang und -ausgang ausgeführt.

nc localhost 31337

stellt dann eine Verbindung zu einer „Fernbedienung“ her bcund Sie können dann bcAusdrücke eingeben und deren Ergebnis sehen.

socatkann das auch (danke Hermann ):

socat tcp-listen:31337,reuseaddr,fork EXEC:bc
Stephen Kitt
quelle
Hervorragende Antwort! Sie können auch verwenden -k, um weiter zuzuhören
Barrycarter
9

Es gibt viele UCSPI-TCP-Tools.

Im Folgenden lautet das Serverprogramm ./service: 0.0.0.0 oder :: 0 sind die Host-IP-Adressen und 7777 ist die Portnummer.

Es gibt auch (nicht in dieser Antwort aufgeführt, aber in den verschiedenen Werkzeugsammlungen dokumentiert, siehe auch) UCSPI-UNIX- und UCSPI-LOCAL-Werkzeuge für AF_LOCAL-Sockets, Werkzeuge, um dies auch mit FIFOs zu tun, UCSPI-SSL-Werkzeuge für TLS / TCP-Sockets und Tools für Netlink-Sockets.

Bernstein ucspi-tcp

In Daniel J. Bernsteins ucspi-tcp gibt es tcpserver:

tcpserver -v -P -R -R -H -l 0 0.0.0.0 7777 \
./Bedienung

Es gibt IPv6-fähige erweiterte Versionen von Bernstein ucspi-tcp wie Erwin Hoffmans tcpserver:

tcpserver -v -P -R -R -H -l 0 :: 0 7777 \
./Bedienung

Bercot s6-Vernetzung

Laurent Bercots s6-Networking hat s6-tcpserver4:

s6-tcpserver4 -v 0.0.0.0 7777 \
./Bedienung
und s6-tcpserver6:

s6-tcpserver6 -v :: 0 7777 \
./Bedienung
Dies sind Unterlegscheiben für andere S6-Netzwerk-Tools.

nosh UCSPI-Tools

Das nosh Toolset hat tcp-socket-listenund tcp-socket-accept:

tcp-socket-listen --combine4and6 :: 7777 \
tcp-socket-accept --verbose --localname 0 \
./Bedienung
Es hat auch eine tcpserver, die nur eine Unterlegscheibe für die anderen beiden ist und die standardmäßig mehrere Optionen auf:

tcpserver -v -l 0 :: 7777 \
./Bedienung

Pape ipsvd

Gerrit Papes ipsvd hat tcpsvd:

tcpsvd -v 0.0.0.0 7777 \
./Bedienung

Sampson onenetd

Adam Sampson hat eine onenetd:

onenetd -v :: 7777 \
./Bedienung

Weiterführende Literatur

JdeBP
quelle
4
Diese Antwort würde verbessert, indem die Verbindung zwischen der Frage (lose "Programme, die mit Sockets sprechen") und der in der Antwort verwendeten Terminologie ("UCSPI") eingeleitet wird. Wenn Sie erklären, was UCSPI ist, wird alles andere klarer. Wie die meisten Dinge djb ist es ein Boutique-Begriff und nicht allgemein anerkannt.
Gowenfawr