当我尝试从超级用户更改为普通用户并因此输入“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
),而这应该可以解决问题。