无法使用 ctrl+c 删除已停止的作业

无法使用 ctrl+c 删除已停止的作业

当我尝试从超级用户更改为普通用户并因此输入“exit”时,我收到一条错误消息,作业已停止,并且我无法以 root 身份注销。所以我列出了职位:

#jobs
[1]+ yes | apt-get install build-essential

我将作业从 shell 后台移至前台

fg 1

现在我想,我可以简单地按 ctrl+c 来结束它,但每次我按 ctrl+c 时,除了显示“^c”之外什么也没有发生。当我按 ctrl+z 时,我回到了提示符,但作业仍然在那里,所以我陷入了 # 。

答案1

^C产生一个中断信号(SIGINT)。程序可以屏蔽这个信号,或者完全忽略它,或者以非致命的方式对其进行“反应”。

例如 - 您可能希望程序停止它现在正在做的任何事情,但又不完全终止。

所以^C并不总是有效。

^Z停止作业,然后kill %1 (其中 %1 是列表中的数字jobs)将向其发送终止信号 ( SIGTERM),而这应该可以解决问题。

相关内容