Class: MultiDaemons::Controller

Inherits:
Object
  • Object
show all
Defined in:
lib/multi_daemons/controller.rb

Overview

To control daemons

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(daemons, options = {}) ⇒ Controller



6
7
8
9
# File 'lib/multi_daemons/controller.rb', line 6

def initialize(daemons, options = {})
  @daemons = daemons
  @options = options
end

Instance Attribute Details

#daemonsObject

Returns the value of attribute daemons.



4
5
6
# File 'lib/multi_daemons/controller.rb', line 4

def daemons
  @daemons
end

#optionsObject

Returns the value of attribute options.



4
5
6
# File 'lib/multi_daemons/controller.rb', line 4

def options
  @options
end

Instance Method Details

#startObject



11
12
13
# File 'lib/multi_daemons/controller.rb', line 11

def start
  daemons.each(&:start)
end

#statusObject



28
29
30
31
32
33
34
35
36
37
38
# File 'lib/multi_daemons/controller.rb', line 28

def status
  daemon_attrs = []
  daemons.each do |daemon|
    daemon_attrs << { name: daemon.name, pids: daemon.pids }
  end
  daemon_attrs.each do |hsh|
    hsh[:pids].each do |pid|
      puts "#{hsh[:name]}(#{pid}): #{print_status(Pid.running?(pid))}"
    end
  end
end

#stopObject



15
16
17
18
19
20
21
22
23
24
25
26
# File 'lib/multi_daemons/controller.rb', line 15

def stop
  pids = []
  pid_files = []
  daemons.each do |daemon|
    daemon.multiple = true
    daemon.stop
    pids << daemon.pids
    pid_files << daemon.pid_file
  end
  Pid.force_kill(pids.flatten, force_kill_timeout)
  PidStore.cleanup(pid_files)
end