繁体   English   中英

在运行JAR服务时未显示日志

[英]Logs not showing up when running JAR as a service

我有一个胖子JAR( Spring Boot ),如果我开始使用java -jar filename.jar会创建两个日志文件:一个应用程序日志(通常是stdout),另一个将在每次访问Web服务器时创建一个条目。

现在,当我使用/etc/init.d/中的文件将其作为服务启动时(请参见下面的代码段),我没有创建任何日志文件( / opt / service-name / log除外,该日志文件仅在应用程序启动)。 这不是权限问题-我尝试与没有权限且无法启动的用户一起启动服务。 而且我尝试没有运气的find / logfile.log

daemon --user=root --pidfile=/var/run/service-name.pid java -jar /opt/service-name/filename.jar > /opt/service-name/log 2>&1 & echo $!

有什么想法为什么不创建日志文件?

尝试首先将stderr重定向到stdout,然后将stdout重定向到文件,例如

daemon --user=root --pidfile=/var/run/service-name.pid java -jar /opt/service-name/filename.jar 2>&1 >/opt/service-name/log & echo $!

另外, & echo $! 部分对我来说可疑。 如果我正确阅读规格 ,则&会导致echo $! 在守护程序返回之前返回,这意味着您将获得错误的pid。 您是否要运行&& echo $! 也许; echo $! ; echo $! 代替?

因此,如果我将应用程序设置为专门记录到/var/log/service-name/日志,则会被写入。 仍然不确定为什么,如果我发现会更新。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM