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

おすすめ記事