Sha256: 250173bdd3aa12a9585f65c33ab9503facb31607a6ff345a55a6791cbdfd141f

Contents?: true

Size: 1.44 KB

Versions: 18

Compression:

Stored size: 1.44 KB

Contents

module Padrino
  module Cli
    module Adapter
      class << self
        # Start for the given options a rackup handler
        def start(options)
          if options.daemonize?
            stop # Need to stop a process if it exists
            fork do
              Process.setsid
              exit if fork
              File.umask 0000
              puts "=> Padrino server has been daemonized with pid #{Process.pid}"
              STDIN.reopen "/dev/null"
              STDOUT.reopen "/dev/null", "a"
              STDERR.reopen STDOUT

              FileUtils.mkdir_p("tmp/pids") unless File.exist?("tmp/pids")
              pid = "tmp/pids/server.pid"

              if pid
                File.open(pid, 'w'){ |f| f.write("#{Process.pid}") }
              end

              Padrino.run!(options.symbolize_keys)
              exit
            end
          else
            Padrino.run!(options.symbolize_keys)
          end
        end

        # Method that stop (if exist) a running Padrino.application
        def stop
          if File.exist?("tmp/pids/server.pid")
            pid = File.read("tmp/pids/server.pid").to_i
            print "=> Sending SIGTERM to process with pid #{pid} wait "
            Process.kill(15, pid) rescue nil
            1.step(5) { |i| sleep i; print "."; $stdout.flush }
            File.delete("tmp/pids/server.pid")
            puts " done."
          end
        end
      end # self
    end # Adapter
  end # Cli
end # Padrino

Version data entries

18 entries across 18 versions & 1 rubygems

Version Path
padrino-core-0.9.28 lib/padrino-core/cli/adapter.rb
padrino-core-0.9.27 lib/padrino-core/cli/adapter.rb
padrino-core-0.9.26 lib/padrino-core/cli/adapter.rb
padrino-core-0.9.24 lib/padrino-core/cli/adapter.rb
padrino-core-0.9.25 lib/padrino-core/cli/adapter.rb
padrino-core-0.9.23 lib/padrino-core/cli/adapter.rb
padrino-core-0.9.22 lib/padrino-core/cli/adapter.rb
padrino-core-0.9.21 lib/padrino-core/cli/adapter.rb
padrino-core-0.9.20 lib/padrino-core/cli/adapter.rb
padrino-core-0.9.19 lib/padrino-core/cli/adapter.rb
padrino-core-0.9.18 lib/padrino-core/cli/adapter.rb
padrino-core-0.9.17 lib/padrino-core/cli/adapter.rb
padrino-core-0.9.16 lib/padrino-core/cli/adapter.rb
padrino-core-0.9.15 lib/padrino-core/cli/adapter.rb
padrino-core-0.9.14 lib/padrino-core/cli/adapter.rb
padrino-core-0.9.13 lib/padrino-core/cli/adapter.rb
padrino-core-0.9.12 lib/padrino-core/cli/adapter.rb
padrino-core-0.9.11 lib/padrino-core/cli/adapter.rb