You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Systemd启动Java程序时未向StandardOutput指定路径写入日志问题

systemd启动Java应用不输出日志到指定文件排查步骤
  • 检查日志文件读写权限:/opt目录默认仅root用户有写入权限,你配置的服务运行用户为jvmapps,需要手动给指定日志文件授权:
    sudo chown jvmapps:jvmapps /opt/log.log /opt/log2.log
    sudo chmod 644 /opt/log.log /opt/log2.log
    
  • 适配systemd版本的日志输出配置:Ubuntu 20.04以下版本的systemd不支持StandardOutput=file:写法,你可以直接修改ExecStart参数加入重定向逻辑,适配所有版本:
    ExecStart=/bin/sh -c '/opt/java/openjdk/jdk-16.0.2/bin/java -jar /opt/StorageWebServer/StorageWebServer.jar > /opt/log.log 2> /opt/log2.log'
    
    如果你需要日志追加不覆盖,可以把file:前缀替换为append:。
  • 检查Java应用日志配置:如果你的应用内置了log4j、logback等日志框架,默认会将日志输出到框架指定的独立文件,不会输出到stdout/stderr,自然无法被systemd捕获。你可以手动执行以下命令测试控制台是否有日志输出:
    sudo -u jvmapps /opt/java/openjdk/jdk-16.0.2/bin/java -jar /opt/StorageWebServer/StorageWebServer.jar
    
    如果无输出,需要修改应用日志配置,开启控制台输出功能。
  • 验证配置生效:修改配置后必须执行sudo systemctl daemon-reload重载配置,再执行sudo systemctl restart StorageWebServer重启服务。如果仍有问题,可通过journalctl -u StorageWebServer -f查看服务运行日志,排查启动报错、权限报错等问题。

内容的提问来源于stack exchange,提问作者Max B

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.10 15:09:03