获取 ssh 中命令的当前执行情况?

获取 ssh 中命令的当前执行情况?

我正在服务器中使用ssh, 从我的终端运行模拟命令。

模拟运行了 10 多个小时。我预计 15 个多小时后会有输出。

在执行过程中,它在终端上回显一些随机结果。对我来说重要的是最后 30 分钟内生成的最终结果。在模拟结束之前。

我失去了互联网连接,因此ssh断掉了,但是当我再次连接到 时ssh,我检查了我的程序是否仍在远程服务器中运行。

  PID TTY          TIME CMD
 2063 ?        00:00:00 sshd
 2064 pts/14   00:00:00 bash
 2156 pts/14   01:19:14 sim-cache
15446 ?        00:00:00 sshd
15448 pts/30   00:00:00 bash
15593 pts/30   00:00:03 sim-cache
15636 ?        00:00:00 sshd
15637 pts/31   00:00:00 bash
15652 pts/31   00:00:00 ps

但由于它在后台运行,我永远不会看到它的输出。

有人可以告诉我如何将正在运行的进程带入当前终端,以便在我可以在终端中看到该进程后,无论该进程如何在此处回显?

答案1

fg命令就是这样做的。这是一个关联或用于man fg寻求帮助。

答案2

解决方案是开始模拟屏幕允许从终端断开和连接。您甚至可以同时从多个终端连接,以同时查看多台计算机的输出。

答案3

虽然它不会帮助您处理已经运行的实例,但您可以将程序的输出重定向到日志文件,如下所示这个答案相关问题:

sim-cache > logfile < /dev/null 2>&1 &

这样,无论您是否可以在进程完成之前重新连接到该进程,您都将获得输出。

目前,使用fg 2156将进程带到 shell 的前台,其中2156PID 是sim-cache您提供的列表中的。

相关内容