有些命令挂在我的Ruby的web应用程序
-
23-09-2019 - |
题
我玩弄的Rails和西纳特拉,我想在服务器上执行命令。这些命令是从形式输入。问题是,如果我进入其预期的输入,我的整个应用程序挂起的命令。下面是我用来执行这些代码:
@threads << Thread.new do
Thread.current["buffer"] = ""
puts "starting #{params[:command]}"
IO.popen(params[:command]) do |io|
io.each_line {|l| Thread.current["buffer"] += l}
end
end
该工程确定为像ls
简单的命令......但例如,如果我进入pause
将期望用户按任意键继续,一切都挂起。我怎样才能解决呢?
编辑:我只记得我去年问关于Ruby线程的行为此处的这是为什么运行就像是没有螺纹?。我试着使用1.9.1解释运行西纳特拉和它的工作。在1.8.6但是,它没有。如果他希望国防部可以关闭这个问题。
解决方案 2
解决方案:我只记得我去年问关于Ruby线程的行为此处的这是为什么运行就像是没有螺纹?。我试着使用1.9.1解释运行西纳特拉和它的工作。下1.8.6但是,它没有。
其他提示
尝试管道的/ dev / null的到你的孩子的过程:
IO.popen("#{params[:command]} </dev/null") do ...
不隶属于 StackOverflow