Class: SVUtil::ProcessManager

Inherits:
Object
  • Object
show all
Defined in:
lib/svutil/process_manager.rb

Instance Method Summary collapse

Constructor Details

#initialize(klass) ⇒ ProcessManager

Returns a new instance of ProcessManager.



3
4
5
6
7
8
9
10
11
12
13
14
15
16
# File 'lib/svutil/process_manager.rb', line 3

def initialize(klass)
  # TODO: Add ability for users to specify these signals
  Signal.trap("INT") { shutdown('Interupted') }
  Signal.trap("TERM") { shutdown('Terminated') }
  Signal.trap("PIPE") { shutdown('Broken Pipe') }
  if running?
    STDERR.puts "There is already a '#{$0}' process running"
    exit 1
  end
  daemonize if SVUtil::config.daemon
  write_pid_file
  @klass = klass
  @server_instance = @klass.new
end

Instance Method Details

#startObject



18
19
20
21
22
23
24
25
26
27
28
29
# File 'lib/svutil/process_manager.rb', line 18

def start
  begin
    @server_instance.run
  rescue
    Log.error $!
    Log.error $!.backtrace if SVUtil::config.trace
    shutdown("Process Completed with Error")
    exit 1
  end
  shutdown("Process Completed")
  exit 0
end