如何在服务器启动时启动后台进程并保持其活动

如何在服务器启动时启动后台进程并保持其活动

注意:我不确定是否应该在这里询问这个问题,stack overflow,还是???

我正在将 Ruby on Rails 应用程序从 Heroku 迁移到 AWS。服务器架构相当简单:

  • 数据库
  • 网络服务器
  • 工作服务器

数据库和 Web 服务器已成功迁移到 AWS。工作服务器已准备就绪。

仅供参考:aws Web 服务器正在运行 Ubuntu 20.xw/Passenger/nginx 作为 http 服务器。

我现在正在迁移 Worker,它使用与 Web 服务器完全相同的代码进行部署。唯一的区别是 Worker 不可公开访问,并使用 Ruby Gem延迟作业处理后台请求。

工作服务器

  • 工作服务器是从基于 Web 服务器的 ami 创建的。
  • 删除了来自 Web 服务器的 nginx 服务器配置(该配置是工件)。

问题

  1. 如何设置工作服务器,使其在启动时自动启动并开始运行后台作业?

  2. 如果发生故障并关闭,我该如何保持工作进程正常运行?

在Heroku中,启动worker服务器的命令行:

bundle exec rake jobs:work

启动 Worker 服务器后,我可以运行上述命令,并且工作进程运行良好。只需弄清楚如何让工作进程以非交互方式运行。

仅供参考:我有 Windows/.NET 背景。Linux / Ruby / Rails 环境对我来说仍然相当新。

相关内容