- r - 以节省内存的方式增长 data.frame
- ruby-on-rails - ruby/ruby on rails 内存泄漏检测
- android - 无法解析导入android.support.v7.app
- UNIX 域套接字与共享内存(映射文件)
我已经为此苦苦挣扎了一个星期,但似乎真的找不到答案。我已经使用 Capistrano 部署了我的 Rails 应用程序。我使用 Puma 作为服务器。
当我部署时,一切正常。问题是让 Puma 在重启和/或崩溃时启动。
为了获得部署设置,我使用了这个 tutorial .我也在使用 RVM。我似乎遇到的问题是获取启动 Puma 的服务。这是我使用的(服务文件):
[Unit]
Description=Puma HTTP Server
After=network.target
[Service]
Type=simple
#User=my-user
WorkingDirectory=/home/my-user/apps/MyApp/current
ExecStart=/home/my-user/apps/MyApp/current/sbin/puma -C /home/my-user/apps/MyApp/shared/puma.rb
Restart=always
[Install]
WantedBy=multi-user.target
那是行不通的。我开始认为问题是没有为所有用户安装 Ruby,所以我为所有用户安装了 RVM,但仍然遇到同样的问题。我的服务器只有 root 和我的用户。
看看 Capistrano 是如何部署的,它运行的命令是:cd/home/my-user/apps/MyApp/current && ( RACK_ENV=production/home/my-user/.rvm/bin/rvm default执行 bundle exec puma -C/home/my-user/apps/MyApp/shared/puma.rb --daemon )
。如果我使用上述命令,我会收到 Systmd 的错误消息,提示缺少参数。所以我用它编写了一个脚本并获得了服务文件来调用这个脚本来启动应用程序。
那也不行。请注意,如果我从服务器上的任何位置调用脚本,脚本确实会启动应用程序,因此它是配置 Systemd 的问题,但我无法弄清楚出了什么问题,也不确定如何调试它。我在 System 的网站上看到了调试页面,但对我没有帮助。如果我运行 systemctl status puma.service
它只告诉我该服务处于失败状态,但它没有告诉我如何或为什么。
还值得注意:如果我从我的 App 文件夹运行 bundle exec puma -C/home/my-user/apps/MyApp/shared/puma.rb
它工作正常,所以我怎么能使用 Systemd 服务复制此命令?
最佳答案
最后,问题是双重的:1) rvm 没有为所有用户正确安装,这意味着部署用户没有可用的 ruby/bundle/etc,其次脚本也是错误的。以下是对我有用的修改后的脚本供引用:
[Unit]
Description=Puma HTTP Server
After=network.target
[Service]
Type=simple
User=deployer
WorkingDirectory=/var/www/apps/MRCbe/current
ExecStart=/bin/bash -lc 'bundle exec puma -C /var/www/apps/MRCbe/shared/puma.rb'
Restart=always
[Install]
WantedBy=multi-user.target
关于ruby-on-rails - 如何让 systemd 使用 Puma 重启 Rails App,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38302492/
puma-dev 无法启动并因错误而失败: unexpected exit: bash: line 23: exec: puma: not found puma-dev 没有看到我安装了 pu
我一直在从多个来源复制和粘贴以下 puma 系统启动脚本的片段,但它不起作用。系统是Debian 9.6,用户rails通过 rvm 安装了 ruby .用户 rails可以启动命令RAILS_ENV
我使用 ansible 脚本来设置服务器: playbook.yml Gemfile 当我将我的应用程序部署到服务器时,我在 nginx/error.log 中看到了这个: 2016/09/30 20
面临的问题 当我运行 bundle exec cap production puma:start 时,我得到 Puma 已成功启动的响应: DEBUG [e4382d1e] * Pruning
一些指南 ( example ) 推荐这个来启动自己的网络服务器 bundle exec rails server puma 但我总是用 puma 启动服务器直接地 bundle exec puma
在努力让一个新项目工作后,我发现由于某种原因我无法启动我的 rails 服务器。我不断收到以下错误:HTTP parse error, malformed request: # 最佳答案 我能够通过清
我正在使用 Capistrano 将我的 Rails 5 应用程序部署到 AWS EC2 实例。当我输入: cap production deploy 一切顺利,部署成功。但是,重启puma的过程不起
我可以使用 rails s puma 在 rails 中运行 puma 服务器或只是 puma . 根据 this answer , 正在运行 rails s puma使服务器了解 rails 环境。
我正在使用 puma 和 nginx 在 digital ocean 上设置我的 Rails 生产服务器。 按照教程,我在/etc/nginx/sites-available/default 中输入了
我已经为本教程设置了我的服务器 ( https://coderwall.com/p/ttrhow/deploying-rails-app-using-nginx-puma-and-capistrano
我继承了一个代码库,其中的测试已经放弃了一年多一点。我正在尝试尽可能多地清理测试套件,但我很难梳理我的集成测试 1. Capybara 2. Puma, 3. Selenium, 4. 使用 rail
在 Ubuntu 14.04 上,我为 puma 设置了这个简单的 upstart 脚本: /etc/init/puma.conf start on (local-filesystems and ne
这个问题在这里已经有了答案: puma gem - Failed to build gem native extension (13 个回答) 去年关闭。 无法在 macos-10.15.6 上 bu
配置中没有明确的选项——我怎么知道我的 Puma 实例是否在集群模式下运行? 最佳答案 如果 Puma 在集群模式下运行,你应该看到 [12345] Puma starting in cluster
当将 MRI Ruby 2.1.2 与 Puma 一起使用时(假设 1 个 worker 有 8 个线程),GC 何时运行?它是在所有这些线程都空闲时由父工作进程运行,还是由父进程根据需要运行,即使这
我正在运行 Puma 2.8.2 服务器来 stub 我的一些后端服务。有时 Puma 服务器会无缘无故地死掉。 error.log 中没有错误,下面是 access.log 的摘录: 10.210.
我一直在使用 Thin 来运行我的 ruby Sinatra 应用程序,但我现在切换到 Puma。 Thin 创建了我自己使用的日志 log/thin.log。我注意到 Puma 没有生成日志文件
我可以使用以下命令启动 Puma: $HOME/.rbenv/bin/rbenv exec bundle exec puma -C/home/deploy/tasks/shared/puma.rb -
我已将 Puma 添加到我的 sinatra 应用程序中,现在我在终端中获得两行请求输出。我已经检查过,它实际上并没有两次调用代码,而且我猜想可能 Puma 正在与 Sinatra 一起输出请求信息。
我了解 Puma 相对于其他 Rails Web 服务器的优势在于它处理慢速客户端的方式。当 Puma 服务器接收并下载一个(可能很慢的)请求时,它仍然可以接收和下载其他可能下载速度更快的请求,并在慢
我是一名优秀的程序员,十分优秀!