恢复被杀死的工作

恢复被杀死的工作

我不小心关闭了一个终端窗口,在该窗口中我限制了并行作业的 CPU 使用率。现在,如果我ps -e S在新的终端窗口中,我可以看到该作业为:

 311029 pts/0    TN+  275:25 jobname

有办法恢复吗?我已经尝试过fgbgjobs我不确定这些命令的作用,并且无论如何它们都不会恢复工作。

答案1

TN+您显示的输出中的表示ps三件事。这三个字符是“进程标志”,每个字符都显示了所示进程的特征。完整列表可以在手册页第 7 节中找到。ps在相关部分中,它们是:

T 由作业控制信号停止
N 低优先级(对其他用户有利)
+ 位于前台进程组中

这里的相关标志T表示作业已停止。由于该进程未分配给您当前正在使用的终端,因此对于大多数实际目的来说,将进程分流到另一个终端是不可能的,但是您可以唤醒挂起的进程足够长的时间,以便它注意到它的状态。终端已经消失SIGHUP- 当它实际上是终端时发送时应该注意到这一点离开。

首先,尝试使用以下命令恢复该过程SIGCONT

$ kill -CONT 311029

其次,无论这是否有效,您都可以通过手动发送SIGHUP并希望它自行清理来重新断言其无家可归状态:

$ kill -HUP 311029

fg和不对进程采取行动的原因jobs是您当前的 shell 没有相关进程的任何所有权 - 它是(或者更确切地说它曾是)由另一个(早已死亡的)shell 进程拥有。

相关内容