2016-12-27 51 views
5

我有rake任务需要持续激活。每当我被命令Rails'rake task'在'RAILS_ENV = production'中执行nohup

RAILS_ENV=production rake jobs:abc 

运行它,它工作正常,但是当我关闭终端rake工作得到stopped.So我找到其他的解决办法就可以通过使用nohup在后台运行。

我执行命令:

nohup RAILS_ENV=production rake jobs:work & 

,但它给错误:

nohup: failed to run command ‘RAILS_ENV=production’: No such file or directory

请建议,以方式在生产环境中执行任务rake

+0

它可能是与环境问题,请在交叉检查配置的环境文件夹是存在或不属于任何production.rb? –

+0

production.rb存在于/ config/environments /目录中。 “nohup”命令导致“没有这样的文件或目录” –

+0

你试过这个nohup rake jobs:work RAILS_ENV = production –

回答

8

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

RAILS_ENV=production nohup rake jobs:work 
3

试试这个

nohup rake jobs:work RAILS_ENV=production 

我评论过上述以及

2

如果您需要nohup功能,你也应该考虑screen的解决方案。

RAILS_ENV=production screen -L rake jobs:work 

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

要回到正常的终端,输入Ctrl+a,然后输入d。您现在可以安全地注销,而无需终止rake任务。

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

您可以通过键入回到你耙过程:

screen -r