本文简要介绍ruby语言中 Process.wait
的用法。
用法
wait() → integer
wait(pid=-1, flags=0) → integer
waitpid(pid=-1, flags=0) → integer
等待子进程退出,返回其进程 ID,并将 $?
设置为包含该进程信息的 Process::Status
对象。它等待哪个孩子取决于 pid
的值:
- > 0
-
等待进程 ID 等于
pid
的子进程。 - 0
-
等待其进程组 ID 等于调用进程的任何子进程。
- -1
-
等待任何子进程(如果没有给出
pid
,则为默认值)。 - < -1
-
等待进程组 ID 等于
pid
绝对值的任何子进程。
flags
参数可能是标志值 Process::WNOHANG
(如果没有可用的子节点,则不阻塞)或 Process::WUNTRACED
(返回尚未报告的已停止子节点)的逻辑或标志值。并非所有标志都适用于所有平台,但标志值为零将适用于所有平台。
如果没有子进程,调用此方法会引发 SystemCallError
。并非在所有平台上都可用。
include Process
fork { exit 99 } #=> 27429
wait #=> 27429
$?.exitstatus #=> 99
pid = fork { sleep 3 } #=> 27440
Time.now #=> 2008-03-08 19:56:16 +0900
waitpid(pid, Process::WNOHANG) #=> nil
Time.now #=> 2008-03-08 19:56:16 +0900
waitpid(pid, 0) #=> 27440
Time.now #=> 2008-03-08 19:56:19 +0900
相关用法
- Ruby Process.wait2用法及代码示例
- Ruby Process.waitall用法及代码示例
- Ruby Process.groups用法及代码示例
- Ruby Process.getpgrp用法及代码示例
- Ruby Process.setproctitle用法及代码示例
- Ruby Process.setrlimit用法及代码示例
- Ruby Process.uid用法及代码示例
- Ruby Process.pid用法及代码示例
- Ruby Process.detach用法及代码示例
- Ruby Process.maxgroups用法及代码示例
- Ruby Process.clock_gettime用法及代码示例
- Ruby Process.exec用法及代码示例
- Ruby Process.groups=用法及代码示例
- Ruby Process.clock_getres用法及代码示例
- Ruby Process.getsid用法及代码示例
- Ruby Process.getpriority用法及代码示例
- Ruby Process.times用法及代码示例
- Ruby Process.getpgid用法及代码示例
- Ruby Process.euid用法及代码示例
- Ruby Process.exit用法及代码示例
- Ruby Process.setpriority用法及代码示例
- Ruby Process.kill用法及代码示例
- Ruby Process.initgroups用法及代码示例
- Ruby Process.spawn用法及代码示例
- Ruby Process.egid用法及代码示例
注:本文由纯净天空筛选整理自ruby-lang.org大神的英文原创作品 Process.wait。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。