Skip to content

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 から新しく実行した子プロセスの番号を読める。なぜか親プロセスの番号を持つ変数は用意されていない。

Terminal window
% sleep 100 &
% echo current $pid child $apid
parent 156875 child 156876
% wait

Plan 9のfork(2)rfork(RFFDG|RFREND|RFPROC)と同等。