2016-09-26 112 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来修复。仍然不清楚为什么这不会产生任何日志文件。