Plan 9におけるプロセス管理
This content is a draft and will not be included in production builds.
プロセスグループについてはPlan 9プロセスグループの特徴に書いた。
プロセスごとに多重化したファイルが /dev 以下にある。
- /dev/pid: 現在のプロセス番号
- /dev/ppid: 親プロセスのプロセス番号
- /dev/pgrpid: 現プロセスのプロセスグループ番号
ただし、シェル等で cat /dev/pid すると cat のプロセス番号が読めてしまうので、シェルのプロセス番号を取得したければ環境変数を参照しなければならない。rcシェルからは $pid から自身のプロセス番号を、$apid から新しく実行した子プロセスの番号を読める。なぜか親プロセスの番号を持つ変数は用意されていない。
% sleep 100 &% echo current $pid child $apidparent 156875 child 156876% waitPlan 9のfork(2)はrfork(RFFDG|RFREND|RFPROC)と同等。