module Terminate
Constants
- VERSION
Public Class Methods
execute(pid, timeout = 10, signal = 'TERM')
click to toggle source
# File lib/terminate.rb, line 23 def self.execute(pid, timeout = 10, signal = 'TERM') if pid_exist?(pid) Process.kill(signal, pid) info "Send SIGNAL #{signal} to process #{pid}." begin Timeout.timeout(timeout) do while pid_exist?(pid) sleep 0.1 end info "Process #{pid} is done." end rescue Timeout::Error Process.kill('KILL', pid) info "Timeout, send SIGNAL KILL to process #{pid}." end else info "Process #{pid} is not found." end end
info(*args)
click to toggle source
# File lib/terminate.rb, line 43 def self.info(*args) logger.info(*args) unless logger.nil? end
logger()
click to toggle source
# File lib/terminate.rb, line 10 def self.logger @@logger end
logger=(logger)
click to toggle source
# File lib/terminate.rb, line 6 def self.logger=(logger) @@logger = logger end
pid_exist?(pid)
click to toggle source
# File lib/terminate.rb, line 14 def self.pid_exist?(pid) begin Process.getpgid( pid ) true rescue Errno::ESRCH false end end