Obter referência ao descritor de arquivo stdin do processo Node.js, deve funcionar no MacOS também

1

Em uma máquina Linux, se eu tiver o pid de um processo, posso escrever no stdin desse processo usando algo como:

/proc/<pid>/fd/0

mas no MacOS, isso não parece possível. Foi-me dito que eu deveria usar mkfifo / named pipes.

No entanto, o uso de pipes nomeados está tornando o problema mais difícil de resolver. Existe uma maneira de o MacOS armazenar uma referência a um fd no sistema de arquivos se você controlar o início do processo?

Por exemplo, se eu fizer isso:

#!/usr/bin/env node
node script.js &
NODEJS_PID=$!                

Eu posso facilmente obter o pid desse processo, representado acima pelo NODEJS_PID var. No entanto, existe uma maneira de capturar uma referência ao descritor de arquivo do stdin para este processo de nodejs?

Se eu conseguir o caminho para o fd, seria legal, porque eu preciso escrever para o fd de outro processo.

    
por Alexander Mills 08.07.2017 / 00:43

1 resposta

2

Como você conhece o PID no OS X, lsof pode funcionar para você:

lsof -p 12345 | awk '$4=="0u"{print $NF}'
/dev/ttys039
# then you can write to the FD
echo "hi" > /dev/ttys039
    
por 08.07.2017 / 01:03