首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

为什么以守护进程的身份运行‘`rails’不能启动Puma?

以守护进程的身份运行Rails不能启动Puma的原因是Puma需要绑定到一个具体的端口上,并监听该端口上的HTTP请求。而以守护进程的身份运行Rails时,它会在后台运行,并且没有一个具体的终端来绑定Puma所需的端口。

Puma是一个多线程的Ruby Web服务器,它可以处理并发的HTTP请求。在Rails应用中,Puma通常作为应用服务器来运行,用于处理用户的请求并返回相应的响应。为了让Puma能够正常工作,需要将其绑定到一个可用的端口上,以便能够监听HTTP请求。

当以守护进程的身份运行Rails时,它会在后台运行,并且没有一个具体的终端来绑定Puma所需的端口。因此,Puma无法启动并监听HTTP请求,导致Rails无法正常工作。

为了解决这个问题,可以通过以下几种方式来启动Puma并使其能够正常工作:

  1. 使用系统进程管理工具(如systemd、init.d等)来启动Rails应用,并将Puma绑定到一个具体的端口上。这样可以确保Puma能够监听HTTP请求并正常工作。
  2. 使用Puma的配置文件来指定绑定的端口。在Rails应用的根目录下,可以创建一个名为config/puma.rb的文件,并在其中指定Puma的配置信息,包括绑定的端口。例如:
代码语言:ruby
复制
# config/puma.rb
port ENV.fetch("PORT") { 3000 }

然后,可以使用puma命令来启动Puma,并指定配置文件的路径:

代码语言:shell
复制
$ puma -C config/puma.rb
  1. 使用其他的应用服务器替代Puma。除了Puma,还有许多其他的Ruby应用服务器可供选择,如Unicorn、Passenger等。这些应用服务器也可以处理并发的HTTP请求,并且可以以守护进程的身份运行。

总结起来,以守护进程的身份运行Rails时,需要注意Puma的启动方式和绑定端口的配置,以确保Puma能够正常工作并监听HTTP请求。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

GitLab 14 轻量化运行方案

对于开发者和小团队而言,如何相对克制和轻量使用它变成了一个有挑战事情。所以本篇文章就来试着针对 GitLab 进行配置调整,让其能够相对低资源占用提供服务。...进入容器,查看进程树,可以看到类似下面这样壮观景象。...] = 1 puma['max_threads'] = 2 # 降低后台守护进程并发数 sidekiq['max_concurrency'] = 5 此外,如果不需要电子邮件相关功能,也可以进行关闭。...] = 2 # 降低后台守护进程并发数 sidekiq['max_concurrency'] = 5 gitlab_ci['gitlab_ci_all_broken_builds...至此,你就能够相对轻量资源拥有一个具备项目管理和仓库存储、以及有良好体验在线编辑器“代码仓库服务”啦。

4.6K21

使用SSH隧道保护三层Rails应用程序中通信

使用Puma部署Rails应用程序。请注意,在安装rbenv-vars插件部分中,必须设置数据库用户和密码反映在 数据库服务器 上安装PostgreSQL时使用值。...同样,如果入侵者要获得对 隧道 用户访问权限,他们既不能编辑Rails应用程序目录中文件,也不能使用sudo命令。 在每台服务器上,创建一个名为 tunnel 其他用户。...这指定了命令完整路径以及为了启动进程而需要执行参数。在这里,它启动一个新bash,然后运行autossh程序。...将Puma作为服务运行允许它在服务器启动时自动启动,如果崩溃则自动重启,有助于使部署更加健壮。...您第二个tunnel现已启动并加密您 Web服务器 和 应用服务器 之间通信。为了让你三层结构Rails应用程序启动运行,你需要做就是配置Nginx将请求传递给Puma

5.6K30

GitLab 14 轻量化运行方案

对于开发者和小团队而言,如何相对克制和轻量使用它变成了一个有挑战事情。所以本篇文章就来试着针对 GitLab 进行配置调整,让其能够相对低资源占用提供服务。...进入容器,查看进程树,可以看到类似下面这样壮观景象。...] = 1 puma['max_threads'] = 2 # 降低后台守护进程并发数 sidekiq['max_concurrency'] = 5 此外,如果不需要电子邮件相关功能,也可以进行关闭...] = 2 # 降低后台守护进程并发数 sidekiq['max_concurrency'] = 5 gitlab_ci['gitlab_ci_all_broken_builds...至此,你就能够相对轻量资源拥有一个具备项目管理和仓库存储、以及有良好体验在线编辑器“代码仓库服务”啦。

2.8K40

如何在Ubuntu 14.04上使用Puma和Nginx部署Rails应用程序

由于Puma不是为用户直接访问而设计,因此我们将使用Nginx作为反向代理,缓冲用户与Rails应用程序之间请求和响应。...我们将生成一个脚手架控制器,以便我们应用程序可以查看: rails generate scaffold Task title:string note:text 现在运行此命令更新生产数据库: RAILS_ENV...,这样我们就可以轻松启动和停止Puma,并确保它在启动启动。...手动启动Puma应用程序 要立即启动所有托管Puma应用程序,请运行以下命令: sudo start puma-manager 您也可以使用pumaUpstart脚本启动单个Puma应用程序,如下所示:...restart puma-manager 现在你Rails应用程序生产环境在Puma运行,它正在监听shared/sockets/puma.sock套接字。

5.4K10

使用Capistrano,Nginx和Puma在Ubuntu 14.04上部署Rails应用程序

Nginx将用于捕获客户端请求并将其传递给正运行RailsPuma Web服务器。...警告:禁用root登录后,请确保您可以作为部署用户SSH连接到服务器,并在关闭您打开root SSH会话进行这些更改之前为该用户使用sudo。 本教程中所有命令都应以deploy用户身份运行。...例如,将创建一个名为testapp_rails目录。 我们只是克隆检查我们部署密钥是否正常工作,每次推送新更改时我们都不需要克隆或拉取我们存储库。...git遥控器是否是最新 管理您应用日志 在管理Puma工作人员时将应用程序预加载到内存中 完成部署后启动(或重新启动Puma服务器 在发行版中特定位置打开Puma服务器套接字 您可以根据需要更改所有选项...,进行首次部署: $ cap production deploy:initial 这会将您Rails应用程序推送到服务器上,为您应用程序安装所有必需gem,并启动Puma Web服务器。

4.9K40

如何在Ubuntu 14.04上使用Git Hooks部署Rails应用程序

准备你Rails应用程序 在您开发机器上,很可能是您本地计算机,我们将准备您要部署应用程序。 可选:创建Rails应用程序 理想情况下,您已经拥有了要部署Rails应用程序。...创建Puma Upstart脚本 让我们创建一个Upstart 初始化脚本,这样我们就可以轻松启动和停止Puma,并确保它在启动启动。...现在,您应用程序配置为在启动时通过Upstart启动。这意味着即使在重新启动服务器后,您应用程序也会启动。请记住,我们尚未部署应用程序,因此我们暂时还不想启动它。...deploy用户在不提供密码情况下运行sudo命令。...请注意,您可能希望限制部署用户可以使用超级用户权限运行命令。您至少需要使用SSH密钥身份验证并禁用密码身份验证。

2.5K60

Ruby 应用容器封装踩坑记录(Lobsters)

在此记录下,希望能帮到有相同需求同学。 写在前面 首先回答为什么要考虑对 Ruby 应用进行容器化封装。...一来,目前线上运行应用必须容器方式进行交付运行,我们使用容器方式注册应用,对外提供服务; 二来,个人倾向并坚持使用容器方案,可以方便后续快速水平扩展;以及最重要一点,“代码和命令皆有记录”,方便离线问题排查...额外小坑:Ruby 2.7.0 版本下 Rails 启动警告 先说结论,这个问题官方正在解决。...(4.0.0) * puma (4.3.3) 再次构建镜像,测试应用启动,一切正常。...如果你也使用阿里云,则需要先登陆管理后台,再登陆数据库后台对指定用户进行授权,默认云控制台做太简单了,不能完成需求。

4.8K00

Ruby 应用容器封装踩坑记录(Lobsters)

一来,目前线上运行应用必须容器方式进行交付运行,我们使用容器方式注册应用,对外提供服务; 二来,个人倾向并坚持使用容器方案,可以方便后续快速水平扩展;以及最重要一点,“代码和命令皆有记录”,方便离线问题排查...第四回合:完成 Ruby 2.4 软件运行环境 在幸运倔强下,这次软件正常运行起来了。 Puma starting in single mode......额外小坑:Ruby 2.7.0 版本下 Rails 启动警告 先说结论,这个问题官方正在解决。...-puma (4.0.0) * puma (4.3.3) 再次构建镜像,测试应用启动,一切正常。...如果你也使用阿里云,则需要先登陆管理后台,再登陆数据库后台对指定用户进行授权,默认云控制台做太简单了,不能完成需求。

7.4K10

Debian 9下安装Ruby on Rails与NGINX

在生产中部署Rails应用程序时,开发人员可以从几个流行应用程序服务器中进行选择,包括Puma,Unicorn和Passenger。...root身份或使用sudo命令打开文件/etc/nginx/conf.d/mod-http-passenger.conf并验证以下两行是否存在且未注释: /etc/nginx/conf.d/mod-http-passenger.conf1...,则应在“Passenger processes”部分下显示一些正在运行进程: ----- Passenger processes ----- PID VMSize Private Name ----...导航到应用程序根目录并安装所有依赖项: cd railsapp bundle install Rails需要JavaScript运行时。...您Rails应用程序现在应该是活动。 下一步 现在您应用程序正在运行,请考虑使用Capistrano等构建工具或Travis或Jenkins等持续集成(CI)工具来加速部署工作流程。

3.5K20

使用 Mastodon 搭建个人信息平台:调优篇

在后台页面的侧边栏中选择“管理”,就可以看到展示应用当前运行状况信息面板啦。 Mastodon 默认运行状况 在图片中我们可以看到“服务器配置”中“全文搜索”目前是关闭着。...因为我们使用是容器中 Mastodon,为了保证“打补丁”程序和运行一致,可以从运行容器中将所需要文件复制到本地。...Rails.configuration.x.use_s3 || Rails.configuration.x.use_swift end 同样,我们使用命令将容器中程序文件拷贝到本地: docker...,第一次明明还是正确结果,到了第二次就变成了内容一样,但是资源地址 http 结果了......Web 服务是 Puma,默认启动后,查看日志我们可以看到进程使用情况: [9] Puma starting in cluster mode... [9] * Puma version: 5.3.2

2.4K11

旧安卓机别扔了!自制 Web 服务器了解一下

现在,我利用它运行一个Puma Web服务器,上面跑着一个简单Sinatra应用。 在进一步介绍之前,你也许会想:这有什么实际用途吗?...安装Ruby、Bundler、Sinatra和Puma Sinatra是一个轻量级Web应用程序框架,而Puma是Web服务器。 Ruby就是Ruby!...当然,Sinatra和Puma只是建议,你甚至可以在手机上运行完整Rails应用程序。只要别使用默认Rails开发服务器WEBRick就行,它只有单进程、单线程,因此不适合生产环境。...(小型测试环境还是不错)。 在安卓上运行: pkg install ruby gem install sinatra puma 安装nginx nginx是Web服务器、反向代理和负载均衡器。...在安卓上运行: pkg install nginx 接下来需要一点小技巧,才能让nginx与Puma相互配合。

2.8K40

Hello new GitLab! 私有化GitLab平滑升级指南!版本换衣不忧愁

不能把大楼拖倒,重新搭建一遍,再把仓库内容重新放上去吧?为什么要升级?为什么要升级GitLab呢? 旧版本又不是不能用?...考虑到GitLab安装方法比较多,我们这里Docker版本为主,在粗略介绍一下直装版本和K8S版本如何操作。...:图片还原的话,需要在gitlab.rb内,定义gitlab_rails['backup_path']指向还原目录,并运行:sudo docker exec gitlab gitlab-backup...gitlab-ee:latest图片最后,重新启动GitLab:图片当然,如果你是跨版本的话,建议在重新启动GitLab前,把config内文件进行备份,并删除gitlab.rb文件,在重新启动GitLab...['backup_path']指向还原目录,并运行:# 去除标识备份文件是什么呢?

2.4K111

搭建和部署GitLab代码托管平台,自己CICD堡垒

一些团队和公司,对代码有着严格管理需求,并且不能使用GitHub和Gitee等现有的公共平台,那么自建代码托管平台,GitLab是一个不错选择。...当然,也有很多其他选择,有机会我们介绍其他代码托管平台。图片为什么选择Docker为什么选择使用Docker部署呢?...这样,就可以登录成功了:图片如果你过了24小时,那么上述获取默认密码方式可能会失效,你可以进行更改:# 登录容器内docker exec -it gitlab bash# 启动gitlab-rails...如果你希望GitLab占用资源少一点,你可以现在线程:# 现在puma线程数puma['worker_processes'] = 2puma['min_threads'] = 2puma['max_threads...,Docker启动GitLab后,因为内部需要启动多个服务,启动过程很忙,期间会显示502;检查GitLab配置是否正确,核心配置错误,也会导致502。

2.5K31

如何在CentOS 6.5上使用Unicorn和Nginx部署Rails应用程序

介绍 在部署基于RailsWeb应用程序时,简单设计应用程序服务器可以在几分钟内启动运行。...Unicorn负责人正在做Web应用服务器需要完成工作并委派其他职责。 Unicorn进程根据您要求生成workers满足请求。此过程还监视workers,以防止记忆和处理相关错误问题。...准备部署服务器 在本节中,我们将执行以下步骤: 更新操作系统 获取必要基本部署工具 安装Ruby,Rails和库 安装应用程序(即Unicorn)和HTTP服务器(Nginx) 更新和准备操作系统 运行以下命令更新...在本教程中,我们将重点介绍关键元素,从头开始创建一个文件,Unicorn将在启动应用程序服务器守护进程时使用该文件。...让我们启动Unicorn并使用配置文件将其作为守护进程运行: # Make sure that you are inside the application directory # i.e.

4.1K20

私有化代码仓库Gitlab落地与应用(一)

内存不足 由于Gitlab组件多、整体较为庞大,因此在部署成功启动运行后会占用相当一部分内存,大约在3-5G左右。...出现前端访问页面报502可以考虑杀掉一些其他无用进程,释放内存后,再重新启动Gitlab。...更多配置信息,可以在 /opt/gitlab/embedded/service/gitlab-rails/config/gitlab.yml 中进行查看。...2.新服务器上恢复数据 将备份文件复制到新服务器/var/opt/backups/目录下,停掉gitlabpuma、sidekiq两个服务,然后执行恢复操作 gitlab-ctl stop puma...gitlab-ctl start sidekiq 特别注意: gitlab不能跨版本升级,只能一个一个大版本地升级 可能遇到报错: Error executing action `run` on resource

1.1K20

GitLab技术选型为何如此不同:坚持用过气Web框架十多年、坚决不用微服务

从 GitLab 角度看,他们本身没有复杂运行体系,也不需要用微服务,在这样情况下,Ruby on Rails 对他们而言反而是最佳选择。...Ruby on Rails,并且开源方式发布。...模块化单体与分布式架构完全相反:它强调程序应该具有良好结构、架构以及更高模块化水平,其中每个进程都能稳定运行且尽可能保持简单。...“所以我们用 Go 自己编写了 gitaly 守护进程处理实际 git 操作,并使用 PostgreSQL 处理非 repo 持久性数据。”Sid Sijbrandij 坦言道。...尽管 Rails 本身并不能实现这一点,这是那些出色贡献者和工程师们完成,但 Rails 还是为这些成功奠定了基础。

84720

python3--中进程操作--multiprocess模块

以我们之前所学知识,并不能实现创建进程这个功能,所以我们就需要借助python中强大模块。... name为子进程名称 方法介绍 1 p.start():启动进程,并调用该子进程p.run()  2 p.run():进程启动运行方法,正是它去调用target指定函数,我们自定义类类中一定要实现该方法...代表p为后台运行守护进程,当p进程终止时,p也随之终止,并且设定 为True后,p不能创建自己进程,必须在p.start()之前设置 2 p.name:进程名称 3 p.pid:进程pid...4 p.exitcode:进程运行时为None、如果为–N,表示被信号N结束(了解即可) 5 p.authkey:进程身份验证键,默认是由os.urandom()随机生成32字符字符串。...为什么会打印两次进程id号?

1.3K10

如何在Ubuntu 14.04上使用Unicorn和Nginx部署Rails应用程序

Unicorn是一个应用服务器,就像Passenger或者Puma一样,它使您Rails应用程序能够同时处理请求。...,我们将生成一个脚手架控制器,以便我们应用程序可以查看它: rails generate scaffold Task title:string note:text 现在运行此命令更新生产数据库: RAILS_ENV...为此,请运行以下命令: RAILS_ENV=production rake assets:precompile 测试应用 要测试您应用程序是否有效,您可以运行生产环境,并将其绑定到服务器公共IP地址...这将允许您使用service unicorn_appname来启动和停止您Unicorn和您Rails应用程序。...重新启动Nginx以使更改生效: sudo service nginx restart 现在可以通过服务器公共IP地址或FQDN访问Rails应用程序生产环境。

4.2K00

OpenStack新手指南:Nova基础知识

Nova Compute:worker守护进程(daemon)从其Message Broker接收命令,并使用Hypervisor(虚拟机管理程序)API执行虚拟机创建/删除任务。...Network Manager(网络管理器):worker 守护进程从其Message Broker中选择网络相关任务并执行这些任务。...路由(python重新实现Rails路由系统)包将URI映射到控制器类上操作方法。 每个需要计算HTTP请求都需要特定身份认证凭证。...如果任何操作是长时间运行,那么它应该具有所需进程状态位置触发eventlet上下文切换方法。如果有的话,下面的代码块将会切换到等待线程。.../tools/with_venv.sh 运行测试 要运行nose测试和pep8 checker,当你完成virtualenv设置(或者这将首先在这里启动)...在'nova' codebase

2K80
领券