class Puma::Single

Public Instance Methods

halt() click to toggle source
# File lib/puma/single.rb, line 19
def halt
  @server.halt
end
jruby_daemon?() click to toggle source
# File lib/puma/single.rb, line 29
def jruby_daemon?
  daemon? and Puma.jruby?
end
jruby_daemon_start() click to toggle source
# File lib/puma/single.rb, line 33
def jruby_daemon_start
  require 'puma/jruby_restart'
  JRubyRestart.daemon_start(@restart_dir, @launcher.restart_args)
end
restart() click to toggle source
# File lib/puma/single.rb, line 11
def restart
  @server.begin_restart
end
run() click to toggle source
# File lib/puma/single.rb, line 38
def run
  already_daemon = false

  if jruby_daemon?
    require 'puma/jruby_restart'

    if JRubyRestart.daemon?
      # load and bind before redirecting IO so errors show up on stdout/stderr
      load_and_bind
      redirect_io
    end

    already_daemon = JRubyRestart.daemon_init
  end

  output_header "single"

  if jruby_daemon?
    if already_daemon
      JRubyRestart.perm_daemonize
    else
      pid = nil

      Signal.trap "SIGUSR2" do
        log "* Started new process #{pid} as daemon..."

        # Must use exit! so we don't unwind and run the ensures
        # that will be run by the new child (such as deleting the
        # pidfile)
        exit!(true)
      end

      Signal.trap "SIGCHLD" do
        log "! Error starting new process as daemon, exiting"
        exit 1
      end

      jruby_daemon_start
      sleep
    end
  else
    if daemon?
      log "* Daemonizing..."
      Process.daemon(true)
      redirect_io
    end

    load_and_bind
  end

  Plugins.fire_background

  @launcher.write_state

  start_control

  @server = server = start_server

  unless daemon?
    log "Use Ctrl-C to stop"
    redirect_io
  end

  @launcher.events.fire_on_booted!

  begin
    server.run.join
  rescue Interrupt
    # Swallow it
  end
end
stats() click to toggle source
# File lib/puma/single.rb, line 5
def stats
  b = @server.backlog
  r = @server.running
  %Q!{ "backlog": #{b}, "running": #{r} }!
end
stop() click to toggle source
# File lib/puma/single.rb, line 15
def stop
  @server.stop false
end
stop_blocked() click to toggle source
# File lib/puma/single.rb, line 23
def stop_blocked
  log "- Gracefully stopping, waiting for requests to finish"
  @control.stop(true) if @control
  @server.stop(true)
end