Linux

新貴將標準輸出和標準錯誤記錄到文件未按預期工作

  • March 24, 2015

在 bash 中我可以執行:

java -jar server.jar &>> log.txt

並且它將 stdout 和 stderr 組合成log.txt. 但是,當我的Upstart .conf文件中有這一行時,它不會這樣做:

exec java -jar server.jar &>> log.txt

我還嘗試將日誌分隔為:

exec java -jar server.jar >> log.txt 2>> err.txt

這也不起作用。如果我讓它覆蓋而不是附加,它將起作用,例如

exec java -jar server.jar > log.txt 2> err.txt

但這是不可接受的。這是Upstart中的錯誤還是我有什麼誤解?我正在執行 Ubuntu 14.04.2 LTS、Upstart 版本 1.12.1,而且我對這兩個版本都很陌生。

不要自己創建文件。讓 upstart 管理它,以便它將 stdout 和 stderr 記錄到/var/log/upstart/<service>.log

console log
exec java -jar server.jar

如果需要更改目錄路徑,可以使用--logdir <directory>.

引用自:https://serverfault.com/questions/677994