我试图在给定的一段时间后使用其PID来杀死进程,即如果进程持续运行超过10分钟,我必须调用一种方法来杀死它。
我有两个问题:首先,我无法设法杀死这个过程,我正在使用:
Process.kill('INT', pid)
但是当我使用Bad file descriptor
信号而不是unsupported name 'SIGQUIT'
时,错误会像QUIT
或INT
一样弹出。
其次,在调用方法杀死进程之前,如何制作10分钟计时器?
感谢。
答案 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不适合你。我无法复制你的错误。