【发布时间】:2013-05-01 08:57:21
【问题描述】:
我有一个安装 Rails 服务器的 EC2 实例。当我这样做时,服务器也运行良好
rails server
但是在我关闭 ssh 连接后,服务器也停止了。关闭 ssh 连接后如何保持服务器运行。
【问题讨论】:
标签: ruby-on-rails ssh amazon-ec2
我有一个安装 Rails 服务器的 EC2 实例。当我这样做时,服务器也运行良好
rails server
但是在我关闭 ssh 连接后,服务器也停止了。关闭 ssh 连接后如何保持服务器运行。
【问题讨论】:
标签: ruby-on-rails ssh amazon-ec2
我会推荐使用 apache 或其他东西来代替常规的 Rails 服务器,但你可以在最后添加 & 并随时离开
rails server &
【讨论】:
作为服务器运行意味着 nginx 或 apache 或者这个开发服务器不意味着作为服务器运行 用户这是需要更多信息https://www.digitalocean.com/community/articles/how-to-install-rails-and-nginx-with-passenger-on-ubuntu 如果想提前使用橡胶https://github.com/rubber/rubber
【讨论】:
试试这个。我们必须启动 rails server 作为守护进程。
rails s -d &
【讨论】:
screen rails s
成功了
之后 CTRL + A + D 我离开了,服务器运行正常
【讨论】:
我需要我的运行所有东西,而不是在后台运行轨道。安装 Screen,它会创建一个不受 ssh 连接影响的子终端。 sudo apt-get install screen 打开屏幕screen 然后启动rails rails server &。
按 'Crtl + A' 然后按 'D' 退出并输入 screen -r 以返回到屏幕终端。
【讨论】:
这些步骤对我有用。我的操作系统是描述:Ubuntu 16.04.4 LTS
sudo apt-get install screenscreen rails sCTRL + A + D 从终端分离现有进程并让它运行。【讨论】:
这是使用 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
【讨论】: