标签: ruby dynamic system cron-task
在Ruby中,我需要一个脚本排队一些at个工作。进行系统调用非常简单,我可以使用反引号system或%x()。但at命令必须是多行的,并且需要命令输入ctrl+d才能终止。如何动态创建at作业?
at
system
%x()
ctrl+d
示例(Ruby):
`at #{time}\nrun_other_script.rb\n:q`
效果:
at 2014-10-14 11:30 at> run_other_script.rb at> <EOT>
但当然我的例子不起作用。是什么?
答案 0 :(得分:2)
at接受来自标准输入的输入。
在w模式下使用IO::popen,您可以将输入发送到子流程:
w
IO::popen
IO.popen("at #{time}", "w") { |f| f.puts "run_other_script.rb" }
您也可以使用open3模块。
open3