Node.js 프로세스의 stdin 파일 설명자에 대한 참조 가져오기는 MacOS에서도 작동해야 합니다.

Node.js 프로세스의 stdin 파일 설명자에 대한 참조 가져오기는 MacOS에서도 작동해야 합니다.

Linux 시스템에서 프로세스의 pid가 있으면 다음을 사용하여 해당 프로세스의 stdin에 쓸 수 있습니다.

/proc/<pid>/fd/0

하지만 MacOS에서는 이것이 불가능해 보입니다. 나는 mkfifo/named 파이프를 사용해야 한다고 들었습니다.

그러나 명명된 파이프를 사용하면 문제를 해결하기가 더 어려워집니다. 프로세스 시작을 제어하는 ​​경우 MacOS에서 파일 시스템에 fd에 대한 참조를 저장하는 방법이 있습니까?

예를 들어, 이렇게 하면:

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

위의 NODEJS_PID 변수에 표시된 대로 프로세스의 pid를 쉽게 얻을 수 있습니다. 하지만 이 Nodejs 프로세스의 stdin 파일 설명자에 대한 참조를 캡처하는 방법이 있습니까?

다른 프로세스에서 해당 fd에 써야 하기 때문에 fd에 대한 경로를 얻을 수 있다면 멋질 것입니다.

답변1

OS X의 PID를 알고 있으므로 lsof다음이 도움이 될 수 있습니다.

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

관련 정보