33: def run
34: parse_options!("stop") do |opts|
35: opts.on("-p", "--port NUMBER", Integer,
36: wrap_desc("The port number of a Phusion Passenger Standalone instance (default: #{@options[:port]})")) do |value|
37: @options[:port] = value
38: end
39: opts.on("--pid-file FILE", String,
40: wrap_desc("PID file of a running Phusion Passenger Standalone instance.")) do |value|
41: @options[:pid_file] = value
42: end
43: end
44:
45: determine_various_resource_locations(false)
46: create_nginx_controller
47: begin
48: running = @nginx.running?
49: rescue SystemCallError, IOError
50: running = false
51: end
52: if running
53: @nginx.stop
54: else
55: STDERR.puts "According to the PID file '#{@options[:pid_file]}', " <<
56: "Phusion Passenger Standalone doesn't seem to be running."
57: STDERR.puts
58: STDERR.puts "If you know that Phusion Passenger Standalone *is* running then one of these"
59: STDERR.puts "might be the cause of this error:"
60: STDERR.puts
61: STDERR.puts " * The Phusion Passenger Standalone instance that you want to stop isn't running on"
62: STDERR.puts " port #{@options[:port]}, but on another port. If this is the case then you should"
63: STDERR.puts " specify the right port with --port."
64: STDERR.puts " If the instance is listening on a Unix socket file instead of a TCP port,"
65: STDERR.puts " then please specify the PID file's filename with --pid-file."
66: STDERR.puts " * The instance that you want to stop has stored its PID file in a non-standard"
67: STDERR.puts " location. In this case please specify the right PID file with --pid-file."
68: exit 1
69: end
70: end