加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

杀死Thread ruby??中的系统进程

发布时间:2020-12-17 02:39:24 所属栏目:百科 来源:网络整理
导读:我如何在 ruby Thread中杀死ping(或其他非常非常长的没有超时等系统进程)(ping – 这只是一个简单的例子): a = Thread.new do system 'ping localhost'enda.killa.exita.terminatewhile true sleep 5 p a.alive?end 输出:= PING localhost.localdomain (12
我如何在 ruby Thread中杀死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 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
......

所以我需要用Thread停止ping进程,但我不知道该怎么做.

解决方法

system不给你pid.

请改用Process::spawn.并使用Process::kill使用Process :: spawn返回的pid终止进程.

例如:

pid = Process.spawn('ping localhost')
sleep 3
Process.kill(:TERM,pid)
Process.wait(pid)

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读