Module: SqsImageProcessor::ProcessManager
- Defined in:
- lib/sqs_image_processor/process_manager.rb
Class Method Summary collapse
- .generate_child_pid_file(pid) ⇒ Object
- .generate_pid_file ⇒ Object
- .get_pid ⇒ Object
- .is_running? ⇒ Boolean
- .kill ⇒ Object
- .pid_is_running?(pid) ⇒ Boolean
Class Method Details
.generate_child_pid_file(pid) ⇒ Object
47 48 49 50 51 |
# File 'lib/sqs_image_processor/process_manager.rb', line 47 def self.generate_child_pid_file( pid ) File.open("/tmp/sqs_image_processor_manager/#{pid}.pid", 'w') {|f| f.write(pid) } end |
.generate_pid_file ⇒ Object
40 41 42 43 44 45 |
# File 'lib/sqs_image_processor/process_manager.rb', line 40 def self.generate_pid_file FileUtils.mkdir_p '/tmp/sqs_image_processor' File.open("/tmp/sqs_image_processor.pid", 'w') {|f| f.write(Process.pid) } end |
.get_pid ⇒ Object
53 54 55 |
# File 'lib/sqs_image_processor/process_manager.rb', line 53 def self.get_pid pid = File.open("/tmp/sqs_image_processor_manager.pid", 'a+') {|f| f.read }.to_i end |
.is_running? ⇒ Boolean
31 32 33 34 35 36 37 38 |
# File 'lib/sqs_image_processor/process_manager.rb', line 31 def self.is_running? pid = File.open("/tmp/sqs_image_processor.pid", 'a+') {|f| f.read }.to_i if pid == 0 || !self.pid_is_running?(pid) false else true end end |
.kill ⇒ Object
14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 |
# File 'lib/sqs_image_processor/process_manager.rb', line 14 def self.kill if self.is_running? pid = File.open("/tmp/sqs_image_processor.pid", 'a+') {|f| f.read }.to_i Process.kill("KILL", pid) Dir.foreach('/tmp/sqs_image_processor') do |item| next if item == '.' or item == '..' begin Process.kill("KILL", item.gsub('.pid','').to_i) rescue end end puts "Stopped instance of SqsImageProcessor." else puts "Error: SqsImageProcessor isn't running." end end |
.pid_is_running?(pid) ⇒ Boolean
5 6 7 8 9 10 11 12 |
# File 'lib/sqs_image_processor/process_manager.rb', line 5 def self.pid_is_running?( pid ) begin Process.getpgid( pid.to_i ) true rescue Errno::ESRCH false end end |