java - Ubuntu中通过systemd单元运行java程序时不产生日志文件

标签 java ubuntu logging daemon systemd

操作系统 -> 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/

相关文章:

java - R2dbc 无法使用 tcp 处理 h2 数据库

java - 为什么我的程序中的错误和输出消息会更改它们在每次运行时出现的顺序?

python - ffmpeg如何将mpg编码为2 channel aac?

logging - 在哪里可以找到存储在 S3 中的文件的访问日志

java - 有没有办法在Java中满足某个条件时结束递归方法?

java - 仅用于可见单元格的 Gridview touchListener

node.js - `jupyterlab` 没有 't recognize ` nodejs ` and ` npm` 安装

php - 在 Ubuntu Linux 12 中启用 Excel PHP PDO 驱动程序

java - 日志记录在 Android 设备上的实际作用是什么?

java - 使用正则表达式匹配多行日志文件中的每条消息