Grave para stdin de um processo em execução usando o pipe

7

Estou em uma situação semelhante a esta postar Mas eu não posso obter a solução fornecida lá para trabalhar na minha situação, pois a resposta parece estar relacionada apenas a essa questão.

Em particular, não consegui entender qual era o objetivo de

cat my.fifo | nc remotehost.tld 10000

No meu caso, tenho um processo em execução e aguardando entrada. Como posso enviar entrada para esse processo usando pipes nomeados?

Eu tentei echo 'h' > /proc/PID/fd/0 apenas exibe 'h' na janela do processo.

    
por aditya 29.10.2012 / 10:41

1 resposta

11

Apenas ignore as linhas que contêm nc , o OP nestas perguntas quer usá-lo para transferir dados pela rede via nc .

Isso deixa você com:

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

Agora você pode enviar dados para o seu programa com

echo "Hello World" > yourfifo

Se estiver pronto, encerre seu programa, emita o comando kill $mypid para se livrar do processo fictício para manter o FIFO aberto e rm yourfifo para se livrar do canal nomeado.

    
por 29.10.2012 / 11:04