4

即使终端关闭,我也需要运行一个java程序......在服务器......

4

4 回答 4

6

在 Unix 和 GNU/Linux 系统上,你可以像这样运行程序nohup,假设它是一个 jar:

nohup java -jar program.jar &

要将程序的输出运行到文本文件中,以便稍后您可以查看它,您可以执行以下操作:

nohup java -jar program.jar > program.log &

也有一些包可以将你的 Java 程序包装到服务中,这比裸java进程更易于管理。

您可能还想使用“进程包装器”(可能是Launch4J?)给您的进程一个有意义的名称,否则您的所有 Java 程序都将显示java在进程列表中,这不是很有指示性。

于 2010-07-03T09:17:49.117 回答
2

一个“替代方案”nohupscreen. screen非常有用,它允许您运行任何任务、分离屏幕并让它在后台运行。您可以稍后恢复。

要运行任务:

screen <command_you_want_to_run>

然后<ctrl> <a> <d>从屏幕会话中分离。

下次登录时,您可以使用以下命令重新连接到屏幕会话:

screen -r

如果您有多个屏幕会话正在运行,您将看到它们的详细信息,并且可以像这样连接到它们:

screen -r 1234.pts-1.hostname

... 其中1234.pts-1.hostname是 screen -r 输出的返回值之一。

于 2010-07-03T14:28:55.107 回答
1

使用javaw命令代替java.

于 2010-07-03T09:17:25.583 回答
0

你想使用无头模式。这将导致任何尝试与屏幕、键盘、鼠标等通信的调用失败,但也意味着您不需要 X 服务器(在 Unix 上)或访问控制台(在 Windows 上)。

于 2010-07-03T09:16:44.837 回答