Escribir en stdin de un proceso en ejecución usando pipe

8

Estoy en una situación similar a la de esta publicación, pero no pude obtener la solución proporcionada para trabajar en mi situación, ya que la respuesta parece estar relacionada solo con esa pregunta.

En particular, no podía entender cuál era el propósito de

cat my.fifo | nc remotehost.tld 10000

En mi caso, tengo un proceso en ejecución y esperando la entrada. ¿Cómo puedo enviar información a ese proceso utilizando canalizaciones con nombre?

Lo he intentado echo 'h' > /proc/PID/fd/0solo muestra 'h' en la ventana de proceso '.

aditya
fuente

Respuestas:

13

Simplemente ignore las líneas que contienen nc, el OP en estas preguntas quiere usarlo para transferir datos a través de la red nc.

Eso te deja con:

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

Ahora puede enviar datos a su programa con

echo "Hello World" > yourfifo

Si ha terminado, finalice su programa, emita el comando kill $mypidpara deshacerse del proceso ficticio para mantener abierto el FIFO y rm yourfifodeshacerse de la tubería con nombre.

Sven
fuente
2
que esta cat > yourfifo &haciendo
Alexander Mills