Java 通过SSH在远程计算机上运行jar时未创建日志

Java 通过SSH在远程计算机上运行jar时未创建日志,java,spring-boot,logging,ssh,Java,Spring Boot,Logging,Ssh,假设以下设置: 机器a:userA@ MachineB:userB@ 我想在机器B上运行我的JAR: 当我这样运行时: java-jarmyapplication.jar>/dev/null 2>&1& 一切进展顺利,在我的jar文件旁边生成了日志 当我从机器A通过ssh运行它时: ssh userB@“java-jar myApplication.jar>/dev/null 2>&1&” 应用程序在计算机B上启动,但未生成任何日志文件 顺便说一句,jar是一个常规的spring引导应用程序

假设以下设置:

  • 机器a:userA@
  • MachineB:userB@
我想在机器B上运行我的JAR:

当我这样运行时:
java-jarmyapplication.jar>/dev/null 2>&1&
一切进展顺利,在我的jar文件旁边生成了日志

当我从机器A通过ssh运行它时:
ssh userB@“java-jar myApplication.jar>/dev/null 2>&1&”

应用程序在计算机B上启动,但未生成任何日志文件


顺便说一句,jar是一个常规的spring引导应用程序,使用logback进行日志记录。

您的应用程序甚至在有机会创建日志文件之前就被杀死了。如果从命令中删除最后的“与”,则可能会起作用:

ssh userB@<ipB> "java -jar myApplication.jar > /dev/null 2>&1"

您还可能会发现,查看
屏幕
tmux
会很有帮助。好的,应用程序正在运行,日志正在生成,而不是我预期的位置

在myApplication配置文件中,有一个属性
logging.file=logs/myApplication.log

当我通过SSH启动我的应用程序时,执行的文件夹是
/home/userB
,而不是
/home/userB/deployment/build

因此,日志不是在应用所在的文件夹中生成的,而是在userB的主文件夹中生成的


修复方法是在启动应用程序之前,将
cd
放入特定文件夹。

我已经尝试过了,并且刚刚再次尝试过,以检查我是否遗漏了任何内容,但没有生成任何日志。应用程序正在运行。我可以很容易地使用它的REST接口,只是没有创建日志。
ssh userB@<ipB> "nohup java -jar myApplication.jar > /dev/null 2>&1 < /dev/null &"