我有一个jar可执行文件,我试图运行,直到在Linux服务器上停止。我已经尝试过查看Java Service Wrapper API,但这真的很难,我甚至不确定这是我想要的。有没有办法在服务器上运行程序,以便在我注销程序时继续运行?我正在使用ssh登录服务器和命令行来运行jar。谢谢!
答案 0 :(得分:7)
执行命令
nohup java -jar myjar.jar &
最后的&符号将在新的分叉进程中运行它,因此在您注销后它将继续运行。 nohup
阻止其所有者退出时挂起。
答案 1 :(得分:3)
如果您能够将服务器设置为守护程序,则可以执行此操作。如果没有,您可以尝试使用类似屏幕的程序来创建虚拟终端。
sudo apt-get install screen
screen java -jar myJar.jar
如果你想重新接触终端:
screen -r
答案 2 :(得分:2)
答案 3 :(得分:1)
为什么有! (请记住,这可能仅适用于服务器,而不适用于您的个人计算机) 使用linux'screen'命令创建一个虚拟终端,在您注销后将继续,指令为here。
基本上,使用:
$ screen
启动一个新的虚拟终端窗口。启动你的代码,一旦你运行它,输入“control + a”然后“d”分离窗口。分离后,您可以注销,您的程序仍将在服务器上运行。要返回它,请输入:
$ screen -r
然后你会回到你的计划中。十分简单! Instructions