2023年1月13日金曜日

macOS で標準入力待ちしている他のプロセスにテキストを送信する方法

macOS で標準入力待ちしている他のプロセスにテキストを送信する方法

概要

macOS の場合 /proc ディレクトリがなく file descriptor を参照できないので tty を使います

環境

  • macOS 11.7.2

ターミナル1: 標準入力受付

  • cat

これで標準入力受付状態になります

  • ps aux | grep cat

でプロセス番号を取得しておきます

ターミナル2: tty を確認する

  • lsof -p 26819

26819 は先程取得した cat のプロセス番号です
これで使用している tty がわかるのでメモします

COMMAND   PID         USER   FD   TYPE DEVICE SIZE/OFF                NODE NAME
cat     26819 username0000  cwd    DIR    1,9      192               34773 /Users/username0000/Downloads
cat     26819 username0000  txt    REG    1,9   121984 1152921500312764495 /bin/cat
cat     26819 username0000  txt    REG    1,9  2547856 1152921500312766735 /usr/lib/dyld
cat     26819 username0000    0u   CHR   16,2 0t270214                 667 /dev/ttys002
cat     26819 username0000    1u   CHR   16,2 0t270214                 667 /dev/ttys002
cat     26819 username0000    2u   CHR   16,2 0t270214                 667 /dev/ttys002

動作確認

  • echo "hello" > /dev/ttys002

これでターミナル1側にメッセージが出力されることが確認できます

0 件のコメント:

コメントを投稿