Schreiben Sie mit Pipe in den Standard eines laufenden Prozesses


8

Ich bin in einer ähnlichen Situation wie in diesem Beitrag. Aber ich kann die dort bereitgestellte Lösung nicht finden, um in meiner Situation zu funktionieren, da die Antwort nur auf diese Frage bezogen zu sein scheint.

Insbesondere konnte ich nicht verstehen, was der Zweck war

cat my.fifo | nc remotehost.tld 10000

In meinem Fall läuft ein Prozess und wartet auf Eingabe. Wie kann ich mithilfe von Named Pipes Eingaben an diesen Prozess senden?

Ich habe versucht, echo 'h' > /proc/PID/fd/0es zeigt nur 'h' im Prozess 'Fenster.

Antworten:


13

Ignorieren Sie einfach die Zeilen nc, die enthalten sind. Das OP in diesen Fragen möchte es verwenden, um Daten über das Netzwerk über zu übertragen nc.

Das lässt Sie mit:

mkfifo yourfifo
cat > yourfifo &
mypid=$!
yourprogram < yourfifo

Jetzt können Sie mit Daten an Ihr Programm senden

echo "Hello World" > yourfifo

Wenn Sie fertig sind, beenden Sie Ihr Programm, geben Sie den Befehl aus kill $mypid, um den Dummy-Prozess zu entfernen, das FIFO offen zu halten und die Named rm yourfifoPipe zu entfernen.


2
was cat > yourfifo &macht das
Alexander Mills
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.