要终止挂起的作业,我使用Ctrl+c向挂起的作业发送中断信号。有时这不会停止工作,至少不会立即停止。然后我可以使用Ctrl+z暂停该作业,然后用kill %1
(或无论作业的编号是什么)终止它。
为什么Ctrl+对工作的干扰比+z更强大?有时,甚至+也不起作用。在这种情况下还可以使用其他组合键吗?CtrlcCtrlz
我尝试过stty -a
,但其他列出的组合键对我没有任何作用。
答案1
Ctrl+ C(控制字符intr
):它将SIGINT
向进程发送信号,通常应用程序会中止,但应用程序可以处理此信号。例如,您可以使用语言signal()
中的函数处理信号。C
Ctrl+ Z(控制字符susp
):它将SIGTSTP
向进程发送信号,将其置于后台,并且SIGINT
可以对其进行处理。
如果进程有等待 I/O,并且您必须等待完成其 I/O,则该进程不会立即使用Ctrl+终止,然后应用程序将从内存中终止。 但是+会暂停你的进程及其 I/O。从技术上讲,操作系统不会给它 CPU 时间,如果你终止后台进程,它可能会丢失一些 I/O 和数据。C
CtrlZ
要强制终止进程,您必须SIGKILL
发出 9 号信号,这是最强大的信号 - 操作系统将立即终止它,但您可能会丢失数据,因为程序将无法对此信号做出反应。