【问题标题】:How to open java program in other linux computer without terminal holding?如何在没有终端持有的情况下在其他linux计算机上打开java程序?
【发布时间】:2014-03-24 05:07:11
【问题描述】:

我用 jar 文件编写了一个 java 程序。 java程序是为了更新linux服务器的状态所以需要继续运行,但是linux服务器在数据中心,所以我需要远程到服务器打开程序。我使用 ssh 登录 linux 服务器。使用“java -jar file.jar”命令运行程序。

但是,如果我关闭计算机中的终端,linux 服务器的 java 程序将关闭。由于我不能一直打开我的电脑,我想知道如何在不拿着我的电脑终端的情况下打开java程序。

【问题讨论】:

标签: java linux


【解决方案1】:

您需要在注销后使用nohup 来保持程序运行。:

server:~name$> nohup java -jar file.jar &

这将使您的程序保持运行

【讨论】:

  • 这里是响应:“nohup: ignoring input and append output to `nohup.out'”
  • 没关系,它说任何System.out.println() 都会转到名为 nohup.out 的文件
【解决方案2】:

两种方式

一个

nohup java -jar file.jar &

另一个

java -jar file.jar &

在这两种情况下,您的进程都将进入后台,但是当 shell 在第二种情况下终止时,进程将在第二种方法中终止。

【讨论】:

  • 这里是响应:“nohup: ignoring input and append output to `nohup.out'”
  • 这很好,您的标准输出将被重定向到 nohup.out。关键是您的进程是否进入后台?
【解决方案3】:

如果该程序打算在您的所有计算机上运行以进行监控,您应该将它作为服务器的初始化系统中的服务运行(systemd 对于当今的大多数系统)。您可以使用Java Service Wrapperjsvc 或编写自己的初始化脚本。

【讨论】:

    【解决方案4】:

    除了提议的解决方案之外的另一种解决方案:

    screen -d -m java -jar your.jar
    

    然后您将看到一个带有java 命令的分离屏幕。使用screen -l 列出,使用screen -D -RR <screenid_obtained_via_screen_-ls> 重新附加

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-08-28
      • 2012-09-21
      • 2012-11-02
      • 2020-12-17
      • 2020-10-01
      • 2016-01-12
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多