如何在退出 ssh 连接后恢复进程?

如何在退出 ssh 连接后恢复进程?

假设我在 ubuntu 服务器上运行 minecraft 服务器,然后我通过 ssh 从远程 ubuntu 机器登录到这台机器。我启动服务器并运行我手上的脚本,例如minecraft

如果我想注销并保持服务器运行,我通常minecraft &会说我在运行后实际注销minecraft &。我重新登录并希望恢复我最初运行时获得的相同信息窗口minecraft &。我该如何恢复它?

答案1

您可以使用screentmux来执行此操作。 screen使用较多且默认安装,因此如果您是新手,最好从它开始。使用屏幕时还建议使用 Byobu (此处截屏视频),它是 screen 的包装器,让它更易于使用,并且为 screen 添加了很多有用的扩展(将来它还将支持 tmux)。

答案2

您可以使用 byobu。它可以通过以下方式轻松安装

sudo apt-get 安装 byobu

并且可以开始

屏风

您可以通过菜单设置一个选项,当您 ssh 进入服务器时它将自动启动。

byobu 是一个使用 screen 的前端,它允许通过一个 ssh 连接方便地使用多个终端窗口。

答案3

调查GNU 屏幕。它允许执行长时间运行的程序,并且您可以随意“分离”和“重新附加”这些会话。

在软件中心搜索“screen”。软件包名称是screen

要分离,只需使用红色 X 关闭 ssh 会话(不要退出)。或者输入ctrl-a d

要重新连接,请执行

screen -r <screen-id>

可以从哪里获得

screen -list

答案4

如果服务器的界面是控制台式的,您可以使用 GNU screen 来获得所需的持久性。如果是图形界面,请使用 VNC 或 nx 来实现持久性。

或者,如果您不关心稍后重新连接该进程,nohup(“no hangup”)命令将运行一个忽略 ssh 会话结束时触发的终止信号的进程。

相关内容