处理ruby中的挂shell命令

时间:2015-03-20 21:36:18

标签: ruby bash

我有一个运行ruby脚本的cronjob,它从bash实用程序(ipmitool)收集数据。有时这个实用程序挂起,导致整个脚本挂起,导致cron作业堆叠起来......

执行此操作的代码行是:

'macaddress' => `timeout 5 ipmitool lan print | grep 'MAC Address'`.split(':',2)[1].strip

在cron作业中,这仍会导致脚本挂起但是当我在ruby脚本中手动测试以下内容时运行表格终端:

ans = `timeout 1 sleep 20 | grep 'hello'`

shell命令正确终止

如何阻止cron脚本挂起?

编辑:这是悬挂的悬念(悬挂在选择位置):

open("/root/.freeipmi/sdr-cache/sdr-cache-xxxx.localhost", O_RDONLY) = 4
mmap(NULL, 2917, PROT_READ, MAP_PRIVATE, 4, 0) = 0x7f0ea2dfd000
ioctl(3, IPMICTL_SEND_COMMAND, 0x7fff74802020) = 0
select(4, [3], NULL, NULL, {60, 0}

0 个答案:

没有答案