我不小心关闭了一个终端窗口,在该窗口中我限制了并行作业的 CPU 使用率。现在,如果我ps -e S
在新的终端窗口中,我可以看到该作业为:
311029 pts/0 TN+ 275:25 jobname
有办法恢复吗?我已经尝试过fg
,bg
但jobs
我不确定这些命令的作用,并且无论如何它们都不会恢复工作。
答案1
TN+
您显示的输出中的表示ps
三件事。这三个字符是“进程标志”,每个字符都显示了所示进程的特征。完整列表可以在手册页第 7 节中找到。ps
在相关部分中,它们是:
T
由作业控制信号停止
N
低优先级(对其他用户有利)
+
位于前台进程组中
这里的相关标志T
表示作业已停止。由于该进程未分配给您当前正在使用的终端,因此对于大多数实际目的来说,将进程分流到另一个终端是不可能的,但是您可以唤醒挂起的进程足够长的时间,以便它注意到它的状态。终端已经消失SIGHUP
- 当它实际上是终端时发送时应该注意到这一点去离开。
首先,尝试使用以下命令恢复该过程SIGCONT
:
$ kill -CONT 311029
其次,无论这是否有效,您都可以通过手动发送SIGHUP
并希望它自行清理来重新断言其无家可归状态:
$ kill -HUP 311029
fg
和不对进程采取行动的原因jobs
是您当前的 shell 没有相关进程的任何所有权 - 它是(或者更确切地说它曾是)由另一个(早已死亡的)shell 进程拥有。