[英]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.