Module: Asir::Transport::Conduit
- Defined in:
- lib/asir/transport/conduit.rb
Overview
Conduit service support.
Instance Method Summary collapse
- #_start_conduit! ⇒ Object
- #start_conduit!(options = nil) ⇒ Object
- #stop_conduit!(opts = nil) ⇒ Object
Instance Method Details
#_start_conduit! ⇒ Object
38 39 40 |
# File 'lib/asir/transport/conduit.rb', line 38 def _start_conduit! raise Error::SubclassResponsibility end |
#start_conduit!(options = nil) ⇒ Object
7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
# File 'lib/asir/transport/conduit.rb', line 7 def start_conduit! = nil opts = { :fork => true } opts.update() if _log { "start_conduit! #{self}" } if @verbose >= 1 in_fork = opts[:fork] raise "already running #{@conduit_pid} #{@conduit_cmd}" if @conduit_pid if in_fork @conduit_pid = ::Process.fork do _log { "start_conduit! #{self} starting pid=#{$$.inspect}" } if @verbose >= 2 _start_conduit! raise "Could not exec" end _log { "start_conduit! #{self} started pid=#{@conduit_pid.inspect}" } if @verbose >= 2 else _start_conduit! end self end |
#stop_conduit!(opts = nil) ⇒ Object
26 27 28 29 30 31 32 33 34 35 36 |
# File 'lib/asir/transport/conduit.rb', line 26 def stop_conduit! opts = nil if @conduit_pid _log { "stop_conduit! #{self} pid=#{@conduit_pid.inspect}" } if @verbose >= 1 ::Process.kill( (opts && opts[:signal]) || 'TERM', @conduit_pid) ::Process.waitpid @conduit_pid # File.unlink @redis_conf end self ensure @conduit_pid = nil end |