使用红宝石中的PID终止进程

时间:2014-04-22 15:21:59

标签: ruby windows process pid kill-process

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

我有两个问题:首先,我无法设法杀死这个过程,我正在使用:

Process.kill('INT', pid)

但是当我使用Bad file descriptor信号而不是unsupported name 'SIGQUIT'时,错误会像QUITINT一样弹出。

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

感谢。

1 个答案:

答案 0 :(得分:1)

对于你的时间安排,你可以使用一个帖子:

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?

我不确定为什么QUIT不适合你。我无法复制你的错误。