即使终端关闭,我也需要运行一个java程序......在服务器......
问问题
12562 次
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
一个“替代方案”nohup
是screen
. 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 回答