Methods
Classes and Modules
Class PhusionPassenger::AdminTools::ControlProcess::InstanceAttributes
[RW] | path | |
[RW] | pid |
Public Class methods
[ show source ]
# File lib/phusion_passenger/admin_tools/control_process.rb, line 60 60: def self.for_pid(pid) 61: return list(false).find { |c| c.pid == pid } 62: end
[ show source ]
# File lib/phusion_passenger/admin_tools/control_process.rb, line 42 42: def self.list(clean_stale = true) 43: results = [] 44: Dir["#{AdminTools.tmpdir}/passenger.*"].each do |dir| 45: next if dir !~ /passenger.(\d+)\Z/ 46: begin 47: results << ControlProcess.new(dir) 48: rescue ArgumentError 49: # Stale Passenger temp folder. Clean it up if instructed. 50: if clean_stale 51: puts "*** Cleaning stale folder #{dir}" 52: FileUtils.chmod_R(0700, dir) rescue nil 53: FileUtils.rm_rf(dir) 54: end 55: end 56: end 57: return results 58: end
[ show source ]
# File lib/phusion_passenger/admin_tools/control_process.rb, line 64 64: def initialize(path) 65: @path = path 66: if File.exist?("#{path}/control_process.pid") 67: data = File.read("#{path}/control_process.pid").strip 68: if data.empty? 69: raise ArgumentError, "'#{path}' is not a valid control process directory." 70: else 71: @pid = data.to_i 72: end 73: else 74: path =~ /passenger.(\d+)\Z/ 75: @pid = $1.to_i 76: end 77: if !AdminTools.process_is_alive?(@pid) 78: raise ArgumentError, "There is no control process with PID #{@pid}." 79: end 80: end
Public Instance methods
[ show source ]
# File lib/phusion_passenger/admin_tools/control_process.rb, line 89 89: def backtraces 90: connect do |channel| 91: channel.write("backtraces") 92: return channel.read_scalar 93: end 94: end
[ show source ]
# File lib/phusion_passenger/admin_tools/control_process.rb, line 103 103: def domains 104: doc = REXML::Document.new(xml) 105: 106: domains = [] 107: doc.elements.each("info/domains/domain") do |domain| 108: instances = [] 109: d = { 110: :name => domain.elements["name"].text, 111: :instances => instances 112: } 113: domain.elements.each("instances/instance") do |instance| 114: i = Instance.new 115: instance.elements.each do |element| 116: if i.respond_to?("#{element.name}=") 117: if Instance::INT_PROPERTIES.include?(element.name.to_sym) 118: value = element.text.to_i 119: else 120: value = element.text 121: end 122: i.send("#{element.name}=", value) 123: end 124: end 125: instances << i 126: end 127: domains << d 128: end 129: return domains 130: end
[ show source ]
# File lib/phusion_passenger/admin_tools/control_process.rb, line 132 132: def instances 133: return domains.map do |domain| 134: domain[:instances] 135: end.flatten 136: end
[ show source ]
# File lib/phusion_passenger/admin_tools/control_process.rb, line 82 82: def status 83: connect do |channel| 84: channel.write("status") 85: return channel.read_scalar 86: end 87: end
[ show source ]
# File lib/phusion_passenger/admin_tools/control_process.rb, line 96 96: def xml 97: connect do |channel| 98: channel.write("status_xml") 99: return channel.read_scalar 100: end 101: end