Answers:
它所做的完全是特定于应用程序的。当您按ctrl+时c,终端仿真器将SIGINT信号发送到前台应用程序,这将触发相应的“信号处理程序”。SIGINT的默认信号处理程序将终止应用程序。但是任何程序都可以为SIGINT安装自己的信号处理程序(包括一个根本不会停止执行的信号处理程序)。
显然,vlc安装了一个信号处理程序,该信号处理程序在第一次被调用时尝试进行一些清理/正常终止,并退回到默认行为,即在第二次被调用时立即终止执行。
SIGINT(由Ctrl+ 发出的信号)C通常告诉程序进入其主命令处理循环,或者在没有意义的情况下干净地退出。某些程序在收到SIGINT时将运行清理过程。如果程序太混乱而导致清理过程失败,则在某些程序中,第二秒Ctrl+ C会使程序立即退出。这样做取决于每个程序作者。
如果第二个Ctrl+ C不杀死该程序,尝试Ctrl+ \,它发送SIGQUIT,更猛烈的(但仍然开捕信号)或尝试Ctrl+ Z到暂停程序,随后的kill
命令(例如kill %1
,它发送SIGTERM,以往不太剧烈信号比SIGQUIT高1号)。如果一切都失败了,杀与程序kill -KILL
,也被称为kill -9
,发送抓不到信号SIGKILL。