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

Returns a new instance of Controller.



6
7
8
9
10
11
12
13
# File 'lib/multi_daemons/controller.rb', line 6

def initialize(daemons, options = {})
  @daemons = daemons
  @options = options
  unless ARGV[1].to_s.empty?
    @daemons = filter_daemons(daemons)
    puts "Daemon [#{ARGV[1]}] not exist. Availble ones are #{daemons.map(&:name)}" if @daemons.empty?
  end
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



15
16
17
# File 'lib/multi_daemons/controller.rb', line 15

def start
  daemons.each(&:start)
end

#statusObject



32
33
34
35
36
37
38
39
40
41
42
# File 'lib/multi_daemons/controller.rb', line 32

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



19
20
21
22
23
24
25
26
27
28
29
30
# File 'lib/multi_daemons/controller.rb', line 19

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