即使 SSH 关闭,仍保持服务器上的进程运行

即使 SSH 关闭,仍保持服务器上的进程运行

我在服务器上运行长程序,这基本上是java程序的Jar文件。即使 SSH 终端关闭,我也想保持该程序运行,如何保持该程序在服务器上运行?

答案1

两种不同的方式:

  1. 使用nohup- 通过使用 nohup 启动程序nohup /path/to/program &,让程序保持运行,任何输出都将重定向到nohup.out当前目录中的文件
  2. 如果服务器上安装了其中一个,则使用screenor 。tmux它们是一种保持一个或多个 shell 运行的方法,以便您可以在下次登录时重新附加到它们 - 它是一个比 nohup 更强大的实用程序。man screenman tmux了解更多信息。

答案2

以下是如何在不使用 nohup 的情况下使已启动的进程保持运行。

假设您开始解压缩一个大档案,现在您想回家。

$ tar -xzf bigfile.tar.gz

按 ctrl-z 将进程发送到后台。您可以输入“jobs”并按 Enter 键,然后查看进程的作业编号,可能是 1。

然后做:

$ disown %1

答案3

screen 或 tmux 都可以工作。

参见例如http://www.jeffstory.org/wordpress/?p=132有关如何使用它的快速教程。

答案4

虽然我从未使用过阿帕奇守护进程,它可能会做你想做的事。它将作为后台进程运行您的 Java 程序。

然后我会用顶部监控该进程,如果占用太多资源则将其关闭。

您需要安装 htop apt-get:

sudo apt-get install htop

然后通过运行

htop

当您看到进程时,可以通过在列表中选择它(通过箭头键)来终止它,然后按

f9, k 

相关内容