我正在尝试暂停命令,想知道是否有一个终止信号,GUI程序,无论是图形桌面还是终端程序,都会将其视为用户从UI终止程序,就像命令File| Exit
或单击X
窗口上的按钮一样,从而提示用于保存任何打开的文件。
kill -l
显示超过 64 个选项。它们中的任何一个单独组合是否等同于终止的 GUI 选项?
我已经尝试过nano
作为示例,但到目前为止我尝试过的选项除了 SIGTERM 之外都不起作用。
答案1
不会。用户通常用来终止进程的主要信号是:
- SIGINT(由终端中的Ctrl+发送)— 中止当前操作并转到顶层交互循环。C如果程序没有顶级交互循环,则终止该程序。
- SIGTERM — 彻底停止程序。这可能会进行紧急保存。
- SIGHUP — 当终端消失时,由系统发送到终端上运行的程序。通常像 SIGTERM 一样处理。
- SIGQUIT(由终端中的Ctrl+发送)— 没有任何清理和转储核心就死掉(用于调试)。\
- SIGKILL — 程序终止并且没有机会进行任何清理。
这些都没有常规意义,即程序会提示用户输入任何内容。对于一个程序来说,在 SIGTERM 上进行提示可能是有意义的,但我想不出有一个程序可以做到这一点。有些程序确实会在 SIGINT 上进行提示,提供返回顶层或退出程序或进入调试模式的选择。一般来说,程序收到 SIGTERM 时的假设是用户不在控制台前与程序交互,或者程序没有响应 - 否则用户将使用交互式控件而不是发送信号。
GUI 事件(例如单击x
窗口标题栏中的按钮)不会发送信号,而是在正常的 X11 通信通道上发送事件。