Rails' rake任务'执行'RAILS_ENV =生产'与nohup

时间:2016-12-27 12:32:59

标签: ruby-on-rails ruby

我有rake任务,需要持续激活。每当我通过命令运行它

RAILS_ENV=production rake jobs:abc   

它工作正常,但当我关闭终端rake工作停止时。所以我通过使用nohup在后​​台运行它找到了其他解决方案。

我执行命令:

nohup RAILS_ENV=production rake jobs:work &

但它给出了错误:

  

nohup:无法运行命令'RAILS_ENV = production':没有这样的文件或目录

请建议在生产环境中执行rake任务。

3 个答案:

答案 0 :(得分:10)

nohup命令之前设置环境变量。

RAILS_ENV=production nohup rake jobs:work

答案 1 :(得分:4)

试试这个

  nohup rake jobs:work RAILS_ENV=production

我已经评论了上面的解决方案

答案 2 :(得分:3)

如果您需要nohup功能,还应考虑screen

RAILS_ENV=production screen -L rake jobs:work

它启动一个未绑定到当前会话的新终端。

要返回普通终端,请键入Ctrl+a,然后键入d。您现在可以安全地注销而不会终止rake任务。

作为奖励,您会自动获取screenlog.0中的日志文件。

您可以输入以下命令返回您的佣金流程:

screen -r