如何在 ruby 中后台运行多个外部命令
给定这个 Unix shell 脚本:
test.sh:
#!/bin/sh
sleep 2 &
sleep 5 &
sleep 1 &
wait
time ./test.sh
real 0m5.008s
user 0m0.040s
sys 0m0.000s
您如何在 Unix 机器上用 Ruby 完成同样的事情?
睡眠命令只是一个示例,只需假设它们是长时间运行的外部命令即可。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
直接来自
Process#waitall
文档:当然,您可以使用
Kernel#system
,或 反引号运算符。Straight from
Process#waitall
documentation:Of course, instead of using Ruby's
sleep
, you can call whichever external command usingKernel#system
, or backtick operator.回答我自己的问题(刚刚发现这个):
在 ruby 1.8 上,你需要安装 sfl gem 并且还需要这个:
To answer my own question (just found out about this):
On ruby 1.8 you need to install the sfl gem and also require this: