我想通过建立 SSH 连接在远程机器上运行我的 java jar。我可以运行 jar,但无法关闭 SSH 会话,直到我按下CTRLC。
下面是我运行 jar 的批处理文件。批处理文件名为 Run_service.bat
@ECHO off java.exe -jar D:\NSXJarfiles\BulkSolve-0.0.1-SNAPSHOT.jar & exit
尝试使用以下命令从 SSH 会话执行 jar
ssh -v -o StrictHostKeyChecking=no -l userid IP "D:/Scripts/Run_Service.bat"
所以我建立了 ssh 会话,并且能够在会话中运行 jar 文件。
该服务在端口上启动。
但是一旦服务启动,我必须关闭 ssh 会话,但它不会关闭,直到我按下CTRLC。下面是服务在 ssh 会话中启动的图像。我尝试了很多方法,但都没有用。请帮我找出一种方法来做同样的事情。
答案1
尝试这个 :
@ECHO off START /B javaw.exe -jar D:\NSXJarfiles\BulkSolve-0.0.1-SNAPSHOT.jar exit
答案2
天下没有免费的午餐;如果您想将应用程序作为服务运行,则必须将应用程序作为服务安装。这样,如果重新启动操作系统,您的应用程序就会自动恢复,而无需人工干预。它还允许您断开与 SSH 服务器的连接并让进程继续运行。(您也可以尝试cmd /c javaw.exe -jar D:\NSXJarfiles\BulkSolve-0.0.1-SNAPSHOT.jar
,但如果进程终止,它就不会恢复)
对于 Spring Boot,请查看Windows 服务参考部分,它指向你温斯威,以及单独维护的示例描述如何将一切整合在一起