前 - 上 - 次 - 目次

# Process

  UNIXのプロセスを管理するモジュール． `Math`モジュールと同様にこ のモジュールも定義されているメソッドは全て モジュール関数です．

  `Process`がプロセスを表現するクラスではなく，プロ セスに対する操作をまとめたモジュールであることに注意してくだ さい．

## モジュール属性:

  `egid`

    実効グループID．

  `egid= gid`

    実効グループIDを設定します．

  `euid`

    実効ユーザID．

  `euid= uid`

    実効ユーザIDを設定します．

  `gid`

    実グループID．

  `gid= gid`

    実グループIDを設定します．

  `pid`

    プロセスID．変数`$$`の値と同じ．

  `ppid`

    親プロセスのプロセスID．UN*Xでは実際の親プロセスが終了した後 は`ppid`は1(`init`のpid)になります．

  `uid`

    プロセスの実ユーザID．

  `uid= uid`

    プロセスの実ユーザIDを設定します．

## モジュール関数:

  `getpgrp([pid])`

    pidのプロセスのプロセスグループを返します． pidが0の時や省略された時はカレントプロセスを意味 します．

  `getpriority(which, who)`

    プロセス，プロセスグループ，ユーザの現在のプライオリティを返 します．`getpriority(2)`参照． `Process`モジュールはwhichとして指定で きる定数PRIO_PROCESS, PRIO_PGRP, PRIO_USERを定義しています．

  `kill(signal, pid...)`

    pidで指定されたプロセスにシグナルを送ります． signalはシグナル番号か名前で指定します．負の値を 持つシグナル(あるいはシグナル名の前に`-`)を与える とプロセスではなくプロセスグループにシグナルを送ります．

  `setpgrp(pid, pgrp)`

    pidのプロセスグループを設定します．pidが 0の時はカレントプロセスを意味します．

  `setpriority(which, who, prio)`

    プロセス，プロセスグループ，ユーザの現在のプライオリティを設 定します．`setpriority(2)`参照． `Process`モジュールはwhichとして指定で きる定数PRIO_PROCESS, PRIO_PGRP, PRIO_USERを定義しています．

  `setsid()`

    新しいセッションを作成して，ttyを切り離します．デーモンを 簡単に作ることができます．セッションIDを返します．

  `wait`

    子プロセスが終了するのを待ち，終了した子プロセスのpidを返します． 子プロセスが一つもなければ`Errno::ECHILD`例外を発生させます．

  `waitpid(pid, flags)`

    pidで指定される特定の子プロセスの終了を待ち，その プロセスが終了した時に`pid`を返します．子プロセス が存在しなければ`Errno::ECHILD`例外を発生させます． ノンブロッキングモードで子プロセスがまだ終了 していない時には`nil`を返します． ``waitpid(2)'`か``wait4(2)'`の実装され ていないマシンではflagsはいつも`nil`ま たは0を指定する必要があります．

## 定数:

  `PRIO_PROCESS`

    `getpriority`または`setpriority`のプロ セスプライオリティ指定．

  `PRIO_PGRP`

    プロセスグループプライオリティ．

  `PRIO_USER`

    ユーザプライオリティ．

  `WNOHANG`

    終了した子プロセスがない時直ちに終了します．

  `WUNTRACED`

    ステータスを報告していない子プロセスがある時には終了します．

前 - 上 - 目次

matz@netlab.co.jp