Class: PidFileBlock::Application
- Inherits:
-
Object
- Object
- PidFileBlock::Application
- Defined in:
- lib/pid_file_block/application.rb
Class Method Summary collapse
-
.do_exit(pid_file_block, exit_code) ⇒ Object
def self.run_application end.
- .run(piddir:, pidfile:, exit_code_normal: 0, exit_code_process_exists_error: 1, exit_code_interrupt: 2) ⇒ Object
Class Method Details
.do_exit(pid_file_block, exit_code) ⇒ Object
def self.run_application end
12 13 14 15 |
# File 'lib/pid_file_block/application.rb', line 12 def self.do_exit(pid_file_block, exit_code) pid_file_block.release if pid_file_block exit exit_code end |
.run(piddir:, pidfile:, exit_code_normal: 0, exit_code_process_exists_error: 1, exit_code_interrupt: 2) ⇒ Object
17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 |
# File 'lib/pid_file_block/application.rb', line 17 def self.run(piddir:, pidfile:, exit_code_normal: 0, exit_code_process_exists_error: 1, exit_code_interrupt: 2) pid_file_block = nil Signal.trap('TERM') do do_exit(pid_file_block, exit_code_interrupt) end Signal.trap('INT') do do_exit(pid_file_block, exit_code_interrupt) end pid_file_block = PidFileBlock.new(piddir: piddir, pidfile: pidfile) begin pid_file_block.open do yield end rescue PidFileBlock::ProcessExistsError STDERR.puts "Error: process exists (see pid in file #{pid_file_block.pid_file_full_name})." exit exit_code_process_exists_error end exit exit_code_normal end |