4

我有一个 jar 可执行文件,我试图运行它直到在 linux 服务器上停止。我试过查看 Java Service Wrapper API,但这真的很困难,我什至不确定这就是我想要的。有没有办法可以在服务器上运行程序,以便在我注销时程序继续运行?我正在使用 ssh 登录到服务器和命令行来运行 jar。谢谢!

4

4 回答 4

7

跑:

 nohup java -jar myjar.jar &

最后的&符号将在新的分叉进程中运行它,因此它会在您注销后继续运行。 nohup防止它在其所有者注销时挂断。

于 2012-11-15T02:02:42.380 回答
3

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

sudo apt-get install screen
screen java -jar myJar.jar

如果你想重新连接你的终端:

screen -r
于 2012-11-15T02:05:00.567 回答
2

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

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

在 Ubuntu 上只是一个 apt-get away。

于 2012-11-15T02:10:04.757 回答
1

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

基本上,使用:

$ screen

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

$ screen -r

你会回到你的程序。十分简单!指示

于 2012-11-15T02:06:34.477 回答