我必须在Linux机器(Centos 7)上运行Java Sping Boot 应用程序。我通过SSH连接到shell。此应用程序采用jar格式,实现了一个批处理应用程序,并包含其自身的调度程序。
我必须在远程服务器的后台运行它,以便在退出shell之后它仍然运行。
为了在后台运行我的应用程序,我执行了以下命令:
java -Xms256m -Xmx1024m -jar UpdateInfoBatch-0.0.1-SNAPSHOT.jar &
然后我点击了键盘上的CTRL+C以便再次获得shell上的键盘提示符。
这里是第一个奇怪的行为:我再次获得了shell提示符和插入命令的可能性,但如果应用程序记录了一些东西,它会出现在shell上。为什么?我希望我的应用程序仍然在后台运行。
无论如何,我现在在我的shell中提示以下命令,以检查我的应用程序是否正在运行:
xxx@xxx.yyy.it ~/zzz-导入-数据-批处理]# ps辅助|如果您的浏览器没有自动更新,请点击这里返回上一页。如果您的浏览器没有自动更新,请点击这里返回。
而且是的,我的应用程序似乎正确运行(第一个)。
然后我关闭与shell的连接,再次登录并再次执行前面的命令,但现在得到的结果是:
xxx@xxx.spaccount.it ~/zzz-导入-数据-批处理]# ps辅助|如果您有任何问题,请与我们联系。如果您有问题,请与我们联系。
正如您所看到的,在我断开与shell的连接之后,当我进行新的登录时,我的批处理应用程序似乎没有运行(事实上,我的作业应用程序也没有运行)。
出了什么问题?我错过了什么?什么可能是在后台运行我的java jar批处理应用程序的好方法?
1条答案
按热度按时间8zzbczxx1#
通常,您会希望重定向输出,可以使用nohup命令将其派生到后台。