2013-05-29 61 views
2

運行rake任務在後臺這是我的命令如何在軌

bundle exec rake resque:work QUEUE="*" --trace 

我想我的服務器作爲後臺進程上運行此命令。

請幫幫我。

回答

19

我經常使用的方法是:

nohup bundle exec rake resque:work QUEUE="*" --trace > rake.out 2>&1 & 

這將讓即使您退出shell中運行的任務。那麼如果我只想觀察跟蹤輸出直播,我這樣做:

tail -f rake.out 

您可以隨時檢查rake.out。

如果你需要在完成之前殺死它,你可以用ps找到它並殺死pid。

+0

'tail -f rake.out'不會顯示rake進程的控制檯輸出。如何查看控制檯輸出? – LINGS

+0

@LINGS當我使用上述技術時,我確實獲得了耙控制檯輸出。你的命令行是什麼樣的? – lurker

+0

所以我執行'nohup bundle exec rake pr:monitor --trace> monitor.out 2>&1&'。 當我'尾-f monitor.out',我得到 '**調用PR:顯示器(FIRST_TIME) **調用環境(FIRST_TIME) **執行環境 **執行PR:monitor' – LINGS

0

爲防萬一有人發現這4年後,捆綁有一個現在這樣做的優雅方式。例如,如果你想在後臺運行sidekiq你可以這樣做:

bundle exec sidekiq -e production -d -L ./log/sidekiq.log 

-d daemonizes在後臺運行,但你也將需要使用-L提供一個日誌文件,否則打捆將拒絕在後臺運行你的命令(deamonize)。 使用捆綁銷售商版本1.15.4進行測試