Fedora Linux:使用 stty (或等效方法)绑定密钥来为应用程序引发 SIGUSR1 的方法?

RoU*_*oUS 6 linux fedora signal linux-device-driver

我使用的是 FC 14,但这可能是一个相当普遍的 Linux 问题。

我希望能够在 Linux 终端驱动程序中绑定一个键,该键将导致运行的应用程序发出除SIGINT或之外的信号。SIGQUIT我不想选择其中任何一个。如果它为您敲响了警钟,请按照旧CTRL/T功能的思路进行思考,只是信号由应用程序而不是操作系统捕获和处理。

由于这是用于长期运行活动的状态报告,SIGUSR1因此似乎很合适。但是,如果无法从终端键盘专门提出该问题,我会采取我能得到的。我不想尝试不可能的事情并抓住SIGKILLB-),但我希望能够发出除SIGQUIT终端SIGINT键盘之外的信号。

设想:

  1. 设置终端来执行信号提升操作
  2. 从终端窗口中的 shell 运行应用程序
  3. 等到进入复杂的长时间运行部分
  4. 按下CTRL/whatzit以发出信号
  5. 应用程序捕获信号,执行某种状态报告,然后恢复

我可以在 VMS/OpenVMS 上毫无问题地完成此操作,并且想到在 Linux 上更困难,这有点让我感到震惊。

小智 3

不幸的是,通过魔术字符引发信号的接口不是通用的将字符绑定到信号的东西 - 有某些特定的信号可以像这样引发,并且您可以选择字符,但不能选择信号:请参阅POSIX 规范的相关章节

(除了SIGINT和之外SIGQUIT,您选择信号的另一个选择是SIGTSTP,如果您可以在无法停止进程的情况下生存^Z- 我想如果您希望让它在前台运行,则可能是这种情况。 )