2016-12-27 65 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