我正在使用 FC 14,但这可能是一个相当通用的 Linux 问题。
我希望能够在 Linux 终端驱动程序中绑定一个键,该键将导致正在运行的应用程序发出除 或 之外的信号SIGINT
。SIGQUIT
我不想选择其中任何一个。如果它让你想起了什么,请按照旧CTRL/T
功能的思路思考,只是信号被应用程序而不是操作系统捕获和处理。
由于这是用于长期运行活动的状态报告,因此SIGUSR1
似乎很合适。但是,如果无法从终端键盘上明确提出这一点,我会尽我所能。我不想尝试不可能的事情并抓住SIGKILL
B-),但我会喜欢能够从终端键盘发出除终端键盘SIGQUIT
之外的其他信号。SIGINT
设想:
- 设置终端来执行信号提升操作
- 在终端窗口从 shell 运行应用程序
- 等到它进入复杂的长期运行部分
- 按下
CTRL/whatzit
可发出信号 - 应用程序捕获信号,进行某种状态报告,然后恢复
我可以在 VMS/OpenVMS 上毫无问题地做到这一点,但想到在 Linux 上做到这一点更加困难,我就感到有点害怕。
答案1
不幸的是,通过魔法角色发出信号的接口不是通用的绑定角色到信号的东西——有一些特定的信号可以像这样发出,你可以选择角色,但不能选择信号:见POSIX 规范的相关章节。
(除了和之外SIGINT
,SIGQUIT
另一个选择是SIGTSTP
,如果您可以不用停止您的进程^Z
- 我想如果您希望让它在前台运行的话,情况可能就是这样。)