【发布时间】:2020-04-09 07:12:30
【问题描述】:
我已经完成了一个使用 Ruby on Rails 构建的应用程序。现在我想将它托管在 AWS 上的 EC2 实例上。
我已经为它配置了一个服务器,并且我使用puma HTTP 服务器作为应用程序服务器。在生产中启动应用程序总是需要我运行RAILS_ENV=production rails s,这通常不方便,因为它不会在应用程序启动时返回提示。
我还希望能够使用 systemd 管理 Puma,这样我就可以通过运行一行命令轻松地 start、stop、check status 和 restart puma 服务器。
我在网上尝试了很多解决方案,但是当我尝试启动服务器时经常会报错:
● puma.service - Puma HTTP Forking Server
Loaded: error (Reason: Exec format error)
Active: activating (start) since Mon 2019-12-16 15:33:06 UTC; 59s ago
Cntrl PID: 4473 (bundle)
Tasks: 30 (limit: 4703)
CGroup: /system.slice/puma.service
├─4473 puma 3.12.1 (tcp://0.0.0.0:3000) [my-app]
├─4522 puma: cluster worker 0: 4473 [my-app]
└─4527 puma: cluster worker 1: 4473 [my-app]
Dec 16 15:33:06 ip-172-31-19-238 rbenv[4473]: [4473] * Environment: production
Dec 16 15:33:06 ip-172-31-19-238 rbenv[4473]: [4473] * Process workers: 2
Dec 16 15:33:06 ip-172-31-19-238 rbenv[4473]: [4473] * Preloading application
Dec 16 15:33:08 ip-172-31-19-238 rbenv[4473]: [4473] * Listening on tcp://0.0.0.0:3000
Dec 16 15:33:08 ip-172-31-19-238 rbenv[4473]: [4473] ! WARNING: Detected 1 Thread(s) started in app boot:
Dec 16 15:33:08 ip-172-31-19-238 rbenv[4473]: [4473] ! #<Thread:0x000055f4b08bf7e0@/home/deploy/.rbenv/versions/2.5.0/lib/ruby/gems/2.5.0/gems/a
Dec 16 15:33:08 ip-172-31-19-238 rbenv[4473]: [4473] Use Ctrl-C to stop
Dec 16 15:33:08 ip-172-31-19-238 rbenv[4473]: [4473] - Worker 0 (pid: 4522) booted, phase: 0
Dec 16 15:33:08 ip-172-31-19-238 rbenv[4473]: [4473] - Worker 1 (pid: 4527) booted, phase: 0
我需要一些帮助。提前谢谢你。
【问题讨论】:
标签: ruby-on-rails amazon-ec2 server puma