Module: SqsImageProcessor::ProcessManager
- Defined in:
- lib/sqs_image_processor/process_manager.rb
Class Method Summary collapse
- .generate_pid_file ⇒ Object
- .get_pid ⇒ Object
- .is_running? ⇒ Boolean
- .kill ⇒ Object
- .pid_is_running?(pid) ⇒ Boolean
Class Method Details
.generate_pid_file ⇒ Object
31 32 33 34 35 |
# File 'lib/sqs_image_processor/process_manager.rb', line 31 def self.generate_pid_file File.open("/tmp/sqs_image_processor_manager.pid", 'w') {|f| f.write(Process.pid) } end |
.get_pid ⇒ Object
37 38 39 |
# File 'lib/sqs_image_processor/process_manager.rb', line 37 def self.get_pid pid = File.open("/tmp/sqs_image_processor_manager.pid", 'a+') {|f| f.read }.to_i end |
.is_running? ⇒ Boolean
22 23 24 25 26 27 28 29 |
# File 'lib/sqs_image_processor/process_manager.rb', line 22 def self.is_running? pid = File.open("/tmp/sqs_image_processor_manager.pid", 'a+') {|f| f.read }.to_i if pid == 0 || !self.pid_is_running?(pid) false else true end end |
.kill ⇒ Object
12 13 14 15 16 17 18 19 20 |
# File 'lib/sqs_image_processor/process_manager.rb', line 12 def self.kill if self.is_running? pid = File.open("/tmp/sqs_image_processor_manager.pid", 'a+') {|f| f.read }.to_i Process.kill("KILL", pid) puts "Stopped instance of SqsImageProcessor." else puts "Error: SqsImageProcessor isn't running." end end |
.pid_is_running?(pid) ⇒ Boolean
3 4 5 6 7 8 9 10 |
# File 'lib/sqs_image_processor/process_manager.rb', line 3 def self.pid_is_running?( pid ) begin Process.getpgid( pid.to_i ) true rescue Errno::ESRCH false end end |