已停止(ctrl z)的进程将不会重新启动,并且不再出现在作业列表中

已停止(ctrl z)的进程将不会重新启动,并且不再出现在作业列表中

当我需要终端时,我正在运行apt upgrade,所以ctrlz.当我尝试重新启动它时 ( fg),它不会重新启动,因为它不再位于作业列表中 ( jobs)。 (我没有,运行 disown)。然后我执行了ps获取进程 ID。它显示进程已停止(如预期的那样),因此我执行了sudo kill -s SIGCONT pid重新启动它,但什么也没发生。ps显示该进程仍处于停止状态。没有错误消息。

我做了什么。

sudo apt upgrade
«wait a bit»
«ctrl-z»
«some other command» #can't remember, but nothing special.
fg #This command failed, no such job
jobs #No output

我试图修复它。

  • 发送签名到apt
  • 发送签名到sudo

  • shell 否认该进程发生了什么?

  • (更重要的是)我如何重新启动它?

输出来自ps -l -p $(pgrep apt)

F S   UID   PID  PPID  C PRI  NI ADDR SZ WCHAN  TTY          TIME CMD
4 T     0 22884 22883  0  80   0 - 21617 -      pts/1    00:00:01 apt

输出来自pstree -s -p $(pgrep apt)

systemd(1)───kdeinit5(1038)───ksmserver(1062)───yakuake(1153)───bash(1225)───sudo(22883)───apt(22884)

输出来自pgrep bash | xargs -n1 ps -l -p

F S   UID   PID  PPID  C PRI  NI ADDR SZ WCHAN  TTY          TIME CMD
0 S  1000  1225  1153  0  80   0 -  8770 core_s pts/1    00:00:00 bash
F S   UID   PID  PPID  C PRI  NI ADDR SZ WCHAN  TTY          TIME CMD
0 S  1000  3852  3849  0  80   0 -  8404 -      pts/7    00:00:00 bash
F S   UID   PID  PPID  C PRI  NI ADDR SZ WCHAN  TTY          TIME CMD
0 S  1000  4449  4445  0  80   0 -  8392 core_s pts/3    00:00:01 bash

想法:它与 stdout/stdin 失去联系了吗?它需要它吗?


系统 Debian、bash

#↳ bash --version
GNU bash, version 4.3.30(1)-release (x86_64-pc-linux-gnu)

#↳ uname -a
Linux delorenzi 3.16.0-5-amd64 #1 SMP Debian 3.16.51-3+deb8u1 (2018-01-08) x86_64 GNU/Linux

#↳ sudo --version
Sudo version 1.8.10p3
Sudoers policy plugin version 1.8.10p3
Sudoers file grammar version 43
Sudoers I/O plugin version 1.8.10p3

答案1

通常怀疑的罪魁祸首是诚实的混乱。最明显的检查位置是您正在jobs从 PID 与预期匹配 (1225) 的 shell 运行。在评论中您提到您有终端,但我怀疑“其他命令”可能启动了另一个外壳程序?您是否确认$$正在运行的 shell 的名称jobs

相关内容