在线程ruby中杀死系统进程
如何在ruby线程中终止ping(或其他最长的无超时等系统进程)(ping-这只是一个简单的示例):在线程ruby中杀死系统进程,ruby,multithreading,Ruby,Multithreading,如何在ruby线程中终止ping(或其他最长的无超时等系统进程)(ping-这只是一个简单的示例): a = Thread.new do system 'ping localhost' end a.kill a.exit a.terminate while true sleep 5 p a.alive? end 输出:=> PING localhost.localdomain (127.0.0.1) 56(84) bytes of data. 64 bytes fr
a = Thread.new do
system 'ping localhost'
end
a.kill
a.exit
a.terminate
while true
sleep 5
p a.alive?
end
输出:=>
PING localhost.localdomain (127.0.0.1) 56(84) bytes of data.
64 bytes from localhost.localdomain (127.0.0.1): icmp_req=1 ttl=64 time=0.023 ms
....
true
64 bytes from localhost.localdomain (127.0.0.1): icmp_req=7 ttl=64 time=0.022 ms
.....
true
......
所以我需要用线程停止ping进程,但我不知道怎么做 不会为您提供pid
改用。并使用process::spawn
返回的pid终止进程
例如:
pid = Process.spawn('ping localhost')
sleep 3
Process.kill(:TERM, pid)
Process.wait(pid)
你可以看看宝石