Methods
- A
- E
- F
- I
- K
- N
- S
- T
- W
Attributes
[R] | command | |
[R] | name |
Class Public methods
new(sh, command, *opts)
Link
# File lib/shell/system-command.rb, line 16 def initialize(sh, command, *opts) if t = opts.find{|opt| !opt.kind_of?(String) && opt.class} Shell.Fail Error::TypeError, t.class, "String" end super(sh) @command = command @opts = opts @input_queue = Queue.new @pid = nil sh.process_controller.add_schedule(self) end
Instance Public methods
active?()
Link
flush()
Link
input=(inp)
Link
kill(sig)
Link
notify(*opts)
Link
ex)
if you wish to output:
"shell: job(#{@command}:#{@pid}) close pipe-out."
then
mes: "job(%id) close pipe-out."
yorn: Boolean(@shell.debug? or @shell.verbose?)
start()
Link
start_export()
Link
# File lib/shell/system-command.rb, line 109 def start_export notify "job(%id) start exp-pipe.", @shell.debug? _eop = true Thread.start{ begin @input.each do |l| ProcessController::block_output_synchronize do @pipe_out.print l end end _eop = false rescue Errno::EPIPE, Errno::EIO _eop = false ensure if !ProcessController::USING_AT_EXIT_WHEN_PROCESS_EXIT and _eop notify("shell: warn: Process finishing...", "wait for Job(%id) to finish pipe exporting.", "You can use Shell#transact or Shell#check_point for more safe execution.") redo end notify "job(%id) close exp-pipe.", @shell.debug? @pipe_out.close end } end
start_import()
Link
# File lib/shell/system-command.rb, line 83 def start_import notify "Job(%id) start imp-pipe.", @shell.debug? rs = @shell.record_separator unless rs _eop = true Thread.start { begin while l = @pipe_in.gets @input_queue.push l end _eop = false rescue Errno::EPIPE _eop = false ensure if !ProcessController::USING_AT_EXIT_WHEN_PROCESS_EXIT and _eop notify("warn: Process finishing...", "wait for Job[%id] to finish pipe importing.", "You can use Shell#transact or Shell#check_point for more safe execution.") redo end notify "job(%id}) close imp-pipe.", @shell.debug? @input_queue.push :EOF @pipe_in.close end } end
terminate()
Link