Create a new process with the given args.
@api private @see ChildProcess.build
# File lib/childprocess/abstract_process.rb, line 24 def initialize(args) @args = args @started = false @exit_code = nil @io = nil @detach = false @duplex = false end
Is this process running?
@return [Boolean]
# File lib/childprocess/abstract_process.rb, line 84 def alive? started? && !exited? end
Returns true if the process has exited and the exit code was not 0.
@return [Boolean]
# File lib/childprocess/abstract_process.rb, line 94 def crashed? exited? && @exit_code != 0 end
Did the process exit?
@return [Boolean]
# File lib/childprocess/abstract_process.rb, line 74 def exited? raise SubclassResponsibility, "exited?" end
Returns a ChildProcess::AbstractIO subclass to configure the child's IO streams.
# File lib/childprocess/abstract_process.rb, line 37 def io raise SubclassResponsibility, "io" end
# File lib/childprocess/abstract_process.rb, line 41 def pid raise SubclassResponsibility, "pid" end
Wait for the process to exit, raising a ChildProcess::TimeoutError if the timeout expires.
# File lib/childprocess/abstract_process.rb, line 103 def poll_for_exit(timeout) log "polling #{timeout} seconds for exit" end_time = Time.now + timeout until (ok = exited?) || Time.now > end_time sleep POLL_INTERVAL end unless ok raise TimeoutError, "process still alive after #{timeout} seconds" end end
Launch the child process
@return [AbstractProcess] self
# File lib/childprocess/abstract_process.rb, line 51 def start launch_process @started = true self end
Forcibly terminate the process, using increasingly harsher methods if possible.
@param [Fixnum] timeout (3) Seconds to wait before trying the next method.
# File lib/childprocess/abstract_process.rb, line 64 def stop(timeout = 3) raise SubclassResponsibility, "stop" end
Generated with the Darkfish Rdoc Generator 2.