【问题标题】:How to keep server running on EC2 after ssh is terminatedssh 终止后如何保持服务器在 EC2 上运行
【发布时间】:2013-05-01 08:57:21
【问题描述】:

我有一个安装 Rails 服务器的 EC2 实例。当我这样做时,服务器也运行良好

rails server

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

【问题讨论】:

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


    【解决方案1】:

    我会推荐使用 apache 或其他东西来代替常规的 Rails 服务器,但你可以在最后添加 & 并随时离开

    rails server &
    

    【讨论】:

    • 当他在任期结束时这将是死的,记住它对背景专业人士有好处。
    【解决方案2】:

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

    【讨论】:

      【解决方案3】:

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

      rails s -d &
      

      【讨论】:

      • 作为守护进程 ??能详细点吗?
      • 守护进程是类 Unix 操作系统上的一种程序,它在后台不显眼地运行,而不是在用户的直接控制下,等待特定事件的发生或条件。
      • 我照你说的做了。关闭 ssh 连接后,我仍然无法管理服务器工作
      • 检查 rails 服务器是否在 ssh 中使用“ps -aux | grep rails”。
      • 我认为它应该是 "rails s -d&" 而不是 "rails -s -d&" ,还要指定环境(比如这个例子的生产),使用 "rails s -d -e production& "
      【解决方案4】:
      screen rails s
      

      成功了

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

      【讨论】:

        【解决方案5】:

        我需要我的运行所有东西,而不是在后台运行轨道。安装 Screen,它会创建一个不受 ssh 连接影响的子终端。 sudo apt-get install screen 打开屏幕screen 然后启动rails rails server &

        按 'Crtl + A' 然后按 'D' 退出并输入 screen -r 以返回到屏幕终端。

        【讨论】:

          【解决方案6】:

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

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

          【讨论】:

            【解决方案7】:

            这是使用 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
            

            【讨论】:

              猜你喜欢
              • 2014-02-07
              • 2013-10-29
              • 2016-05-17
              • 2020-05-01
              • 2017-05-29
              • 1970-01-01
              • 2014-06-26
              • 2020-12-23
              • 2022-01-26
              相关资源
              最近更新 更多