我一直在思考这个问题,并且找不到任何东西,所以我打算假设我遇到了XY问题。如何在服务器启动时运行capistrano任务?
让我来描述一下我的问题,这听起来很普遍。
我们使用capistrano
来部署我们的网络应用和数据库。相关部分是我们有专门的服务器用于延迟作业,我们使用capistrano
来部署它并启动/重新启动进程。这是一个自定义数量的工人,有两个不同的Gemfile
s和3个队列。
我想要做的事情是在服务器重新启动时启动它们,或者更多地在服务器克隆+启动时启动它们。
我试过从服务器本身调用cap production delayed_job:custom_start
..没有工作。 (这是我的非XY问题调整问题的核心)。不知道它甚至是有道理的。但我想知道这是否可能。 custom_start
是启动我们工作人员的任务。
或者我想抽象的代码为rake
任务或脚本或东西,从两个capistrano
何地,我需要将它添加到开始启动时调用它。这是否更有意义?
编辑:刚发现this post ..劝阻..
附:我只是想澄清,当我说服务器我的意思是我的机器/ EC2实例,而不是我的Web应用程序重新启动。
我试图做的是给rc本地添加一个capistrano任务,但是谢谢 –
将一个capistrano任务添加到rc.local可能会让每个服务器都登录到role:app中的所有其他服务器并执行一些操作。我想你可以把它包装在run_locally命令中。重点在于它不是rc.local的工具。你必须确定这个盒子是分配给rvm的,capistrano gem是正确安装的,/ etc/profile是正确的(rc.local不能用配置文件运行)并且调用rc.local的全部行(/ usr/bin /帽本地start_server)或一些这样的。方式黑客和任何运营类型的人会射击你。 – Electrawn
哈哈不够公平 –