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


Ruby Process.kill用法及代码示例


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

用法

kill(signal, pid, ...) → integer

如果 pid 为正,则将给定的信号发送到指定的进程 ID。如果pid 为零,则将signal 发送到组ID 等于进程组ID 的所有进程。如果pid 为负,则结果取决于操作系统。 signal 可以是整数信号编号或 POSIX 信号名称(带或不带 SIG 前缀)。如果signal 为负数(或以减号开头),则终止进程组而不是进程。并非所有信号在所有平台上都可用。 Signal.list 的键和值分别是已知的信号名称和编号。

pid = fork do
   Signal.trap("HUP") { puts "Ouch!"; exit }
   # ... do some work ...
end
# ...
Process.kill("HUP", pid)
Process.wait

产生:

Ouch!

如果 signal 是整数但信号错误,则会引发 Errno::EINVAL 或 RangeError 。否则,除非 signal String Symbol ,并且已知信号名称 ArgumentError 将被引发。

此外, Errno::ESRCH 或 RangeError 无效 pid , Errno::EPERM 当因没有特权而失败时,将被引发。在这些情况下,信号可能已发送到前面的进程。

相关用法


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