2016-09-26 169 views
0

OS - >的Ubuntu 16.04 64沒有日誌文件

當下面的java程序運行作爲<user>從命令行它產生的日誌文件存儲在目錄內</home/user>如在作爲系統參數傳入的java util日誌記錄屬性文件中進行配置。

nohup java -Duser.home=<home/<user>> -Djava.util.logging.config.file=/home/<user>/<path_to_logging.properties> -cp <jarname>.jar <MainClass> >> /dev/null 2>>/dev/null & 

然而,當相同的程序運行,如下systemd單元,程序運行好(可以看到的輸出,當它被用管道輸送到一個文件,而不是的/ dev/null的),但日誌文件是不生產!

[Unit] 
Description=Daemon Desc 

[Service] 
WorkingDirectory=/home/<user>/<app> 
ExecStart=/usr/share/java -Duser.home=/home/<user> -Djava.util.logging.config.file=/home/<user>/<path_to_logging.properties> -cp <jarname>.jar <MainClass> 

User=<user> 

[Install] 
WantedBy=multi-user.target 

任何幫助將不勝感激。

+0

聽起來像它可能是一個文件權限問題。當它從systemd運行時,它是否以有權讀取日誌記錄屬性並寫入屬性指定的任何日誌文件的用戶身份運行? – VGR

+0

@VGR我指定運行單元爲User = 誰擁有的權限爲:logging.properties - >'-rw -r -r-- '和日誌目錄 - >'drwxrwxr-x ' –

回答

0

通過調用啓動java程序的shell腳本而不是直接從systemd服務調用java來修復。仍然不清楚爲什麼這不會產生任何日誌文件。