在ssh终止后如何使服务器在EC2上运行

时间:2013-05-07 12:00:01

标签: ruby-on-rails ssh amazon-ec2

我有一个EC2实例,我在其上安装了rails服务器。我做

时服务器运行正常
rails server

但在关闭ssh连接后,服务器也会停止。即使在关闭ssh连接后,如何使服务器保持运行。

7 个答案:

答案 0 :(得分:10)

screen rails s

做了这个伎俩

之后CTRL + A + D和我离开,服务器正常运行

答案 1 :(得分:9)

试试这个。我们必须启动rails server作为守护进程。

rails s -d &

答案 2 :(得分:1)

作为服务器运行意味着通过nginx或apache或者这个开发服务器并不意味着作为服务器运行 用户这需要更多信息https://www.digitalocean.com/community/articles/how-to-install-rails-and-nginx-with-passenger-on-ubuntu 如果想提前解决使用橡胶https://github.com/rubber/rubber

答案 3 :(得分:1)

我需要运行所有东西,而不是在后台使用rails。安装屏幕,使子终端不受您的ssh连接的影响。 sudo apt-get install screen打开屏幕screen然后启动导轨rails server &

按'Crtl + A'然后按'D'退出并输入screen -r以重新进入屏幕终端。

答案 4 :(得分:0)

我会建议使用apache或其他东西代替常规rails服务器,但你可以添加&最后,随时离开

rails server &

答案 5 :(得分:0)

这些步骤对我有用。我的操作系统是描述: Ubuntu 16.04.4 LTS

  • sudo apt-get install screen
  • screen rails s
  • CTRL + A + D 从终端分离现有流程并让其运行

答案 6 :(得分:0)

这是使用RVM和Systemd的生产证明版本。如果由于任何原因终止服务器,它将使服务器保持活动状态。

[Unit]
Description=Puma Control
After=network.target

[Service]
Type=forking
User=user
WorkingDirectory=/var/www/your_project_name

PIDFile=/var/www/your_project_name/shared/tmp/pids/puma.pid

ExecStart=/home/user/.rvm/bin/rvm default do bundle exec puma -C /var/www/your_project_name/shared/puma.rb --daemon

ExecStop=/home/user/.rvm/bin/rvm default do bundle exec pumactl -S /var/www/your_project_name/shared/tmp/pids/puma.state -F /var/www/your_project_name/shared/puma.rb stop

Restart=always
# RestartSec=10

[Install]
WantedBy=default.target