Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ssh/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 如何在ssh终止后保持服务器在EC2上运行_Ruby On Rails_Ssh_Amazon Ec2 - Fatal编程技术网

Ruby on rails 如何在ssh终止后保持服务器在EC2上运行

Ruby on rails 如何在ssh终止后保持服务器在EC2上运行,ruby-on-rails,ssh,amazon-ec2,Ruby On Rails,Ssh,Amazon Ec2,我有一个安装了rails服务器的EC2实例。当我这样做时,服务器也可以正常运行 rails server 但是在我关闭ssh连接之后,服务器也停止了。如何在关闭ssh连接后保持服务器运行。我建议使用apache或其他工具,而不是常规的rails服务器,但您可以在最后添加&并随时离开 rails server & 在as服务器上运行意味着nginx或apache,或者其他任何开发服务器都不意味着作为服务器运行 用户需要更多信息 此外,如果您想使用橡胶,请尝试此方法。我们必须作为守护进程

我有一个安装了rails服务器的EC2实例。当我这样做时,服务器也可以正常运行

rails server

但是在我关闭ssh连接之后,服务器也停止了。如何在关闭ssh连接后保持服务器运行。

我建议使用apache或其他工具,而不是常规的rails服务器,但您可以在最后添加&并随时离开

rails server &

在as服务器上运行意味着nginx或apache,或者其他任何开发服务器都不意味着作为服务器运行 用户需要更多信息
此外,如果您想使用橡胶,请尝试此方法。我们必须作为守护进程启动rails服务器

rails s -d &
成功了


在那之后,CTRL+A+D和我离开了,服务器运行良好

我需要我的运行一切,而不是后台的rails。安装屏幕,使子终端不受ssh连接的影响<代码>sudo apt获取安装屏幕打开屏幕屏幕然后启动rails
rails服务器&


按“Crtl+A”然后按“D”退出,然后键入
screen-r
返回屏幕终端。

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

  • sudo apt get安装屏幕
  • screen-rails
  • CTRL+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
      

      这将是死亡,当他在任期结束时,请记住这对后台专业人员是好的。作为守护进程??你能详细说明一下吗?守护进程是类Unix操作系统上的一种程序,它在后台运行,而不是在用户的直接控制下,等待特定事件或条件的发生来激活。我照你说的做了。但是,在我关闭ssh连接后,我仍然无法管理服务器工作。请检查rails服务器是否在ssh中使用“ps-aux | grep rails”。我认为应该使用“rails s-d&”而不是“rails-s-d&”,还要指定环境(例如本例中的生产),请使用“rails s s-d-e生产&”
      [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