为什么在localhost上弹出错误的Marshal数据太短?

时间:2017-07-18 08:01:56

标签: ruby-on-rails ruby bash sqlite open4

我的应用程序允许在localhost上运行shell命令,因为我已经在模型中编写了逻辑:

require "open4"
class Command < ApplicationRecord
    after_save :command_run
    def command_run
        ab=[cm].compact.join("")
        pid, stdin, stdout, stderr = Open4::popen4 ab
        stdin.puts "echo 42.out"
        stdin.puts "echo 42.err 1>&2"
        stdin.close
        ignored, status = Process::waitpid2 pid
        @zr= "pid        : #{ pid .inspect}"
        @pr= "stdout     : #{ stdout.read.strip.inspect }"
        @mr ="stderr     : #{ stderr.read.strip.inspect }"
        @nr = "status     : #{ status.inspect }"
        @rr= "exitstatus : #{ status.exitstatus.inspect }"
    end
end

我尝试在localhost上运行时遇到错误:

  

在此处输入代码命令#index中的参数错误      显示/home/mifi/bash/app/views/commands/index.html.erb,其中第12行引发:      编组数据太短

无论如何,我可以在命令行上运行shell脚本,或者如何在浏览器上提取输出。

0 个答案:

没有答案