试图让我的puma服务器在没有putty窗口打开的情况下运行

时间:2018-01-18 15:10:09

标签: ruby-on-rails amazon-web-services amazon-ec2 putty

我不知道这是不是一个愚蠢的问题,但是如何在我的ec2实例没有打开puTTy窗口的情况下保持我的puma服务器运行我的rails应用程序?我想让它启动然后关闭窗口而不是一直打开我的电脑。

2 个答案:

答案 0 :(得分:1)

您可以使用screen

  1. 使用putty登录您的服务器
  2. 输入screen
  3. 运行您的服务器
  4. 按ctrl-a然后按d
  5. 现在你的服务器在后台运行,你可以从putty断开连接!
  6. 恢复流程(参见实际控制台)

    1. screen -ls
    2. screen -r <screen_name>
    3. 请注意,所有屏幕进程都将在服务器重启时被终止

答案 1 :(得分:1)

为了让Puma服务器在EC2中运行,您可以对其进行守护,即在后台运行它。

如果您正在使用puma,那么对于非开发环境,您应该将config/puma.rb文件与daemonize为true。您的puma.rb文件应该是

railsenv = ENV.fetch("RAILS_ENV") { "development" }
environment railsenv

if railsenv != "development"

  application_path = '/home/ubuntu/hybrid'
  daemonize true
  directory application_path

  pidfile "#{application_path}/tmp/pids/puma-#{railsenv}.pid"
  state_path "#{application_path}/tmp/pids/puma-#{railsenv}.state"

  stdout_redirect "#{application_path}/log/puma-#{railsenv}.stdout.log", "#{application_path}/log/puma-#{railsenv}.stderr.log"
  workers ENV.fetch("WEB_CONCURRENCY") { 2 }

end

threads_count = ENV.fetch("RAILS_MAX_THREADS") { 5 }.to_i
threads threads_count, threads_count

port        ENV.fetch("PORT") { 3000 }

现在您可以将其作为bundle exec pumactl -F config/puma.rb start启动。你可以同样stoprestart美洲狮服务器。