我有rake
任务,需要持续激活。每当我通过命令运行它
RAILS_ENV=production rake jobs:abc
它工作正常,但当我关闭终端rake
工作停止时。所以我通过使用nohup
在后台运行它找到了其他解决方案。
我执行命令:
nohup RAILS_ENV=production rake jobs:work &
但它给出了错误:
nohup:无法运行命令'RAILS_ENV = production':没有这样的文件或目录
请建议在生产环境中执行rake
任务。
答案 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