即使终端关闭,我也需要运行java程序.... 在服务器....
答案 0 :(得分:5)
在Unix和GNU / Linux系统上,您可以使用nohup
这样运行程序,假设它是一个jar:
nohup java -jar program.jar &
要将程序的输出运行到文本文件中以便以后可以查看它,您可以这样做:
nohup java -jar program.jar > program.log &
有些软件包会将您的Java程序包装到服务中,这比裸java
进程更易于管理。
您可能还想使用“进程包装器”(可能是Launch4J?)为您的进程提供有意义的名称,否则所有Java程序都将显示为{{1}在进程列表中,这不是非常具有说明性的。
答案 1 :(得分: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。
答案 2 :(得分:1)
使用javaw命令代替java
。
答案 3 :(得分:0)
您想使用headless mode。这将导致任何尝试与屏幕,键盘,鼠标等通信的调用失败,但也意味着您不需要X服务器(在Unix上)或访问控制台(在Windows上)。