我通过 ssh 连接到我的服务器,并在该服务器上启动了 yocto 构建。然而,我失去了连接,现在当我重新连接时,我不知道如何查看我现有的构建进展如何?我想看到我的终端上显示的输出。
我可以看到我的进程正在运行。
$ps aux | grep tx
tx 74480 0.0 0.0 6180 2176 pts/29 R+ 11:06 0:00 grep tx
如何重新连接以查看我的构建输出?请在这里帮助我。我使用的是 Debian 机器。
答案1
简短的回答:你不能,那个终端已经消失了。
当您失去连接时,系统会向您的 shell 发送一个信号,告诉 shell 您的连接已断开。 shell 反过来杀死了它的所有子进程,包括yocto
构建,然后退出。这是正常的、预期的、正确的行为。
如果您希望在像这样断开连接时能够重新连接到给定的终端/shell 进程,则必须采取一些步骤才能在断开连接之前执行此操作。可以帮助解决此问题的两个工具是screen
和tmux
;它们都做(大约)相同的事情,因为它们允许您在其中运行长期存在的命令,然后与主会话断开连接,并稍后从另一个终端或登录会话重新连接到它。这里发生的情况是,当您的连接终止时,系统会向screen
或tmux
进程发送与上面相同的信号,但它不会将该信号传递给它的子进程,杀死它们并清理自己,而是简单地忽略该消息并保持它的子 shell 进程还活着。
有关如何使用这些程序的详细信息,请参阅它们的man
页面。