是否可以在远程会话中暂停任务并在服务器控制台上恢复它?例如,通过在远程会话窗口(putty 内)中按 Ctrl+Z 并fg 1
在服务器控制台/桌面停止中运行。
答案1
如果我明白你的期望,你应该能够使用屏幕。
screen 的大图是它创建了一个虚拟终端,您可以将其附加到其他终端或将其分离。假设你已经安装了 screen(screen
我相信 CentOS 中的包名称就是这样),这是你可以使用它的一种方法:
- 使用 Putty 或其他 SSH 客户端远程连接到您的计算机。
- 开始
screen
。这将创建一个虚拟终端,它看起来应该与您已经看到的基本相同。 - 开始你的任务。
- 如果您愿意,可以使用 Ctrl+Z 将其设置为背景,但这不是必需的。即使您分离,应用程序也将继续运行。
- 使用 分离当前终端
Ctrl+a d
。可能感觉你刚刚杀了一些东西,但你并没有。 - 只是为了看看这是如何工作的,请继续运行
screen -r
。这将重新连接您的会话,并将您带回到分离之前的位置。现在Ctrl+a d
再次使用来分离。 - 这很好,但您感兴趣的是从单独的终端会话进行连接。这工作原理完全相同。断开 SSH 连接并
screen -r
从本地终端运行。这应该重新连接您的屏幕会话,并且您的任务应该仍在运行。
请注意,这仅在您一开始就在屏幕中运行应用程序时对您有帮助。我还没有描述如何使用已经在屏幕外运行的进程来执行此操作。
你可以使用做同样的事情多路复用器,但我描述了如何使用屏幕来做到这一点,只是因为它更旧且更常见。