Meridian::SSH::Executor
Constants
CONTROL_PERSIST = "60s"
CONTROL_SOCKET_DIR = File.expand_path("~/.ssh/meridian", home: true)
Connection multiplexing: every remote operation reuses one master
connection per (host, port, user) instead of paying a fresh TCP + auth
handshake. A single health check alone opens retries connections.
Image streams also share the master, so a long transfer occupies it and interrupts in-flight sessions if the master drops. Let Transfer::Stream opt out of multiplexing if that becomes disruptive.
MAX_OUTPUT_TAIL = 4096
Constructors
new(runner : Runner = ProcessRunner.new, streaming_runner : StreamingRunner = ProcessStreamingRunner.new)
SourceClass methods
Instance methods
command_args(host : String, command : Array(String), *, env : Hash(String, String) = {} of String => String, user : String | Nil = nil, port : Int32 | Nil = nil, identity_file : String | Nil = nil, proxy_jump : String | Nil = nil, connect_timeout : Int32 | Nil = nil, keepalive : Bool | Nil = nil, keepalive_interval : Int32 | Nil = nil, batch_mode : Bool | Nil = nil) : Array(String)
Sourcecommand_args(host : String, remote_command : String, *, user : String | Nil = nil, port : Int32 | Nil = nil, identity_file : String | Nil = nil, proxy_jump : String | Nil = nil, connect_timeout : Int32 | Nil = nil, keepalive : Bool | Nil = nil, keepalive_interval : Int32 | Nil = nil, batch_mode : Bool | Nil = nil) : Array(String)
Sourcerun(host : String, command : Array(String), *, env : Hash(String, String) = {} of String => String, input : String | Nil = nil, user : String | Nil = nil, port : Int32 | Nil = nil, identity_file : String | Nil = nil, proxy_jump : String | Nil = nil, connect_timeout : Int32 | Nil = nil, keepalive : Bool | Nil = nil, keepalive_interval : Int32 | Nil = nil, batch_mode : Bool | Nil = nil) : Result
Sourcerun!(host : String, command : Array(String), *, env : Hash(String, String) = {} of String => String, input : String | Nil = nil, user : String | Nil = nil, port : Int32 | Nil = nil, identity_file : String | Nil = nil, proxy_jump : String | Nil = nil, connect_timeout : Int32 | Nil = nil, keepalive : Bool | Nil = nil, keepalive_interval : Int32 | Nil = nil, batch_mode : Bool | Nil = nil) : Result
Sourcestream(host : String, command : Array(String), *, env : Hash(String, String) = {} of String => String, input : IO = STDIN, output : IO = STDOUT, error : IO = STDERR, user : String | Nil = nil, port : Int32 | Nil = nil, identity_file : String | Nil = nil, proxy_jump : String | Nil = nil, connect_timeout : Int32 | Nil = nil, keepalive : Bool | Nil = nil, keepalive_interval : Int32 | Nil = nil, batch_mode : Bool | Nil = nil) : Int32
Sourceupload(host : String, remote_path : String, content : String, *, user : String | Nil = nil, port : Int32 | Nil = nil, identity_file : String | Nil = nil, proxy_jump : String | Nil = nil, connect_timeout : Int32 | Nil = nil, keepalive : Bool | Nil = nil, keepalive_interval : Int32 | Nil = nil, batch_mode : Bool | Nil = nil) : Nil
Source