2012-11-15 161 views
4

我有一个jar可执行文件,我试图运行,直到在Linux服务器上停止。我试过看Java服务包装API,但它真的很难,我甚至不确定这就是我想要的。有没有一种方法可以在服务器上运行程序,以便在注销程序时继续运行?我使用ssh登录到服务器和命令行来运行jar。谢谢!如何在服务器上自主运行程序,如何在服务器上无限运行java程序?

+0

谢谢大家!难怪stackoverflow让这艘船摇滚,你们真棒! *已回答的问题* – user1747935

+1

我很高兴你得到了答案,但最好在超级用户上提问。 StackOverflow是*编程*问题... –

+0

对不起,感谢提示,我的意思是,它与编程有关。它关心在linux环境中运行java jar可执行文件,但我明白你的意思。 StackOverflow很快在Google上弹出,我有点想帮助其他有相同问题的人,但是谢谢! – user1747935

回答

7

运行:

nohup java -jar myjar.jar & 

末的符号将在一个新的派生进程运行它,所以你注销后它会继续。 nohup可防止其所有者注销时挂起。

+2

我会在前面添加nohup –

+0

感谢您的提示,我将不得不检查我的程序,以确保没有发生 – user1747935

3

如果您有能力将服务器设置为守护程序,您可以这样做。如果没有,您可以尝试使用屏幕等程序创建虚拟终端。

sudo apt-get install screen 
screen java -jar myJar.jar 
如果你想reatach终端

screen -r 
+0

谢谢!哈哈我已经知道答案,但只是想拯救别人可怕的恐惧,我不得不去解决这个问题。感谢善良的灵魂! – user1747935

1

为什么是有! (请记住,这可能只能在服务器上运行,而不能在个人计算机上运行) 使用linux'screen'命令创建一个虚拟终端,在注销后将继续运行,说明为here

基本上,使用:

$ screen 

启动一个新的虚拟终端窗口。开始你的代码,一旦你运行,输入“control + a”,然后“d”从窗口中分离。一旦你分离,你可以注销并且你的程序仍然在服务器上运行。要回到它,请键入:

$ screen -r 

然后您将回到您的程序。十分简单! Instructions

2

如果您想将其作为服务运行,请查看daemontools

它会在机器启动时启动程序,如果它崩溃就重新启动它,当机器关闭时停止它。

在Ubuntu上只是一个易于获取。

相关问题