    # File lib/merb-core/bootloader.rb, line 685
        def exit_gracefully
          # wait all workers to exit
          Process.waitall
          # remove master process pid
          Merb::Server.remove_pid("main")
          # terminate, workers remove their own pids
          # in on exit hook

          Merb::BootLoader.before_master_shutdown_callbacks.each do |cb|
            begin
              cb.call
            rescue Exception => e
              Merb.logger.fatal "before_master_shutdown callback crashed: #{e.message}"
            end
          end
          exit
        end