操作系统 -> Ubuntu 16.04 x64
当以下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
任何帮助将不胜感激。
最佳答案
通过调用启动 java 程序的 shell 脚本而不是直接从 systemd 服务调用 java 来修复。仍然不清楚为什么不会产生任何日志文件。
关于java - Ubuntu中通过systemd单元运行java程序时不产生日志文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39711823/