2015-04-22 75 views
0

我使用foremana Vagrant VM運行gunicorn。當我配置虛擬機時,我有工頭作爲最後一個項目啓動,但這會使其記錄到stdout。我更喜歡它登錄到日誌文件並將終端發佈給我。那麼,如果我想看到領班日誌,我可以tail這個文件。如何阻止工頭記錄到stdout?

我覺得我一定錯過了什麼,因爲這不是聲音像一個困難的事情,但我很難過。我現在必須取消兩次,才能擺脫工頭日誌記錄,這對配置來說是一個混亂的結局!

回答

1

您的Procfile中的條目只是運行命令,您可以像在命令行中那樣修改它們。

所以,你可以重定向所有標準輸出爲你的麒麟過程到/ dev/null的

或用2>&1像重定向所有輸出的過程:

web: gunicorn myproject.wsgi 2>&1 

爲了領班釋放終端回到你需要在後臺運行它:

foreman & 
+0

我不能解決如何做到這一點。如果我的Procfile中的一個命令是'web:gunicorn myproject.wsgi>/dev/null',我仍然會輸出到屏幕上。我試過把它引導到一個文件(但是得到一個空文件)。我也嘗試使用gunicorn的'--access-logfile'和'--error-logfile'設置:一些輸出到這些文件,但我仍然得到一些輸出到屏幕。 –

+0

你也可能會得到stderr輸出。這個答案可能會給你幾個選項來重定向絕對所有輸出:http://stackoverflow.com/questions/6674327/redirect-all-output-to-file – Shadwell

+0

更緊密,謝謝...我現在可以發送所有輸出到一個文件,但我仍然得到一個最初的行('08:30:55 web.1 |以pid 21968'開始),工頭不會將終端釋放給我。我仍然需要Ctrl-C才能擺脫它。 –