当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Ruby Status.wait用法及代码示例


本文简要介绍ruby语言中 Process::Status.wait 的用法。

用法

Process::Status.wait(pid=-1, flags=0) → Process::Status

等待子进程退出并返回包含该进程信息的 Process::Status 对象。它等待哪个孩子取决于 pid 的值:

> 0

等待进程 ID 等于 pid 的子进程。

0

等待其进程组 ID 等于调用进程的任何子进程。

-1

等待任何子进程(如果没有给出pid,则为默认值)。

< -1

等待进程组 ID 等于 pid 绝对值的任何子进程。

flags 参数可能是标志值 Process::WNOHANG(如果没有可用的子节点,则不阻塞)或 Process::WUNTRACED(返回尚未报告的已停止子节点)的逻辑或标志值。并非所有标志都适用于所有平台,但标志值为零将适用于所有平台。

如果没有子进程,则返回 nil。并非在所有平台上都可用。

可以调用调度程序钩子 process_wait

fork { exit 99 }                              #=> 27429
Process::Status.wait                          #=> pid 27429 exit 99
$?                                            #=> nil

pid = fork { sleep 3 }                        #=> 27440
Time.now                                      #=> 2008-03-08 19:56:16 +0900
Process::Status.wait(pid, Process::WNOHANG)   #=> nil
Time.now                                      #=> 2008-03-08 19:56:16 +0900
Process::Status.wait(pid, 0)                  #=> pid 27440 exit 99
Time.now                                      #=> 2008-03-08 19:56:19 +0900

这是一个实验函数。

相关用法


注:本文由纯净天空筛选整理自ruby-lang.org大神的英文原创作品 Status.wait。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。