我正在服务器中使用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 的前台,其中2156
PID 是sim-cache
您提供的列表中的。