0

您好,我正在 Ubuntu Web 服务器中制作 Java 程序,但它总是应该在无限循环中运行,或者至少在我停止它之前。当我在 Ubuntu 控制台中运行它时,它不允许我继续使用控制台。为了解决这个问题,我一直在使用“screen”命令并分离屏幕。我想知道是否有更好的方法可以在不使用 screen 命令的情况下执行此操作?

4

1 回答 1

0

运行不受挂断影响的程序

如果您对从命令行手动启动 Java 程序感到满意,但不想让屏幕运行,您可以使用“nohup”命令启动 Java 进程,这样 Java 程序将继续运行即使您关闭控制台窗口或注销。

$ nohup java ...
nohup: ignoring input and appending output to `nohup.out'
$

在后台运行程序

如果您不介意 Java 程序在您关闭控制台窗口或注销时停止,您可以跳过使用“nohup”,只在命令末尾附加一个“&”来告诉您的 shell 在背景。您可能还想在命令中添加“ > program.log 2>&1”,以避免在将程序用于其他目的时,程序的任何输出显示在控制台窗口中。

$ java ... > program.log 2>&1 &
[2] 3128
$ jobs
[2]+ Running            java ... > program.log 2>&1 &
$

作为守护进程运行程序

如果您希望 Java 程序在每次重新启动机器时自动启动,您应该考虑创建一个SYSV init-script,或者当您在 Ubuntu 上运行时,创建一个 Upstart Job 定义

于 2013-06-29T01:48:40.157 回答