![为什么在 Linux 中输入 Ctrl+c 两次会停止正在运行的进程?](https://linux22.com/image/17370/%E4%B8%BA%E4%BB%80%E4%B9%88%E5%9C%A8%20Linux%20%E4%B8%AD%E8%BE%93%E5%85%A5%20Ctrl%2Bc%20%E4%B8%A4%E6%AC%A1%E4%BC%9A%E5%81%9C%E6%AD%A2%E6%AD%A3%E5%9C%A8%E8%BF%90%E8%A1%8C%E7%9A%84%E8%BF%9B%E7%A8%8B%EF%BC%9F.png)
有些 Linux 程序(例如 vlc)建议在终端中键入ctrl+c两次以终止其执行(如果程序在第一次执行后没有停止)。
为什么输入ctrl+c两次可以工作,而第一次却不起作用?
答案1
答案2
信号情报Ctrl,由+发送的信号C,通常告诉程序突破其主命令处理循环,或者如果这没有意义,则干净地退出。有些程序在收到 SIGINT 时会运行清理过程。如果程序太混乱以至于清理过程失败,在某些程序中,第二个Ctrl+C会导致程序立即退出。这样做取决于每个程序作者。
如果第二个Ctrl+C没有杀死程序,请尝试Ctrl+ \,它会发送信号退出,一个更猛烈的信号(但仍然可以捕捉到的信号),或者尝试Ctrl+Z暂停程序然后是kill
命令(例如kill %1
发送信号术语,传统上比 SIGQUIT 更不剧烈的信号,针对作业号 1)。如果所有其他方法均失败,请使用 来终止程序kill -KILL
(也称为 )kill -9
,发送无法捕获的信号信号杀死。