def call(cmd, *args, env: {}, stdin: "", chdir: nil)
        cmd  = bin.join(cmd.to_s).to_s
        args = args.map(&:to_s)
        env  = env.to_h.each_with_object({}) {|(k,v), h| h[k.to_s] = v.to_s}.merge({
          "PBS_DEFAULT"     => host,
          "LD_LIBRARY_PATH" => %{#{lib}:#{ENV["LD_LIBRARY_PATH"]}}
        })
        stdin = stdin.to_s
        chdir ||= "."
        o, e, s = Open3.capture3(env, cmd, *args, stdin_data: stdin, chdir: chdir.to_s)
        s.success? ? o : raise(PBS::Error, e)
      end
def call(cmd, *args, env: {}, stdin: "", chdir: nil)
        cmd  = bin.join(cmd.to_s).to_s
        args = args.map(&:to_s)
        env  = env.to_h.each_with_object({}) {|(k,v), h| h[k.to_s] = v.to_s}.merge({
          "PBS_DEFAULT"     => host,
          "LD_LIBRARY_PATH" => %{#{lib}:#{ENV["LD_LIBRARY_PATH"]}}
        })
        stdin = stdin.to_s
        chdir ||= "."
        o, e, s = Open3.capture3(env, cmd, *args, stdin_data: stdin, chdir: chdir.to_s)
        s.success? ? o : raise(PBS::Error, e)
      end
Call a forked PBS command for a given host