在 ruby​​ 中使用其 PID 杀死进程

use*_*827 4 ruby windows pid process kill-process

我试图在给定的时间段后使用其 PID 杀死一个进程,即,如果该进程持续运行超过 10 分钟,我必须调用一个方法来杀死它。

我有两个问题:首先,我无法终止进程,我正在使用:

Process.kill('INT', pid)
Run Code Online (Sandbox Code Playgroud)

但是错误不断出现,例如Bad file descriptor,或者unsupported name 'SIGQUIT'当我使用QUIT信号而不是INT.

其次,如何在调用终止进程的方法之前制作 10 分钟计时器?

谢谢。

Max*_*Max 5

对于您的时间,您可以使用线程:

Thread.new do
  sleep 10 * 60
  begin
    Process.kill('QUIT', pid)
  rescue Errno::ESRCH
    # process exited normally
  end
end

_, status = Process.wait2 pid
puts status.exited?
Run Code Online (Sandbox Code Playgroud)

我不确定为什么 QUIT 对您不起作用。我无法复制您的错误。