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
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.
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
Tags node.js shell-script osx