我在服务器上运行长程序,这基本上是java程序的Jar文件。即使 SSH 终端关闭,我也想保持该程序运行,如何保持该程序在服务器上运行?
答案1
两种不同的方式:
- 使用
nohup
- 通过使用 nohup 启动程序nohup /path/to/program &
,让程序保持运行,任何输出都将重定向到nohup.out
当前目录中的文件 - 如果服务器上安装了其中一个,则使用
screen
or 。tmux
它们是一种保持一个或多个 shell 运行的方法,以便您可以在下次登录时重新附加到它们 - 它是一个比 nohup 更强大的实用程序。man screen
或man 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有关如何使用它的快速教程。