當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。