【问题标题】:WSTOPSIG(status) == 22 & WTERMSIG(status) == 9; Where do these numbers come from?WSTOPSIG(状态)== 22 & WTERMSIG(状态)== 9;这些数字从何而来?
【发布时间】:2013-02-12 15:24:25
【问题描述】:

我正在查看 esh(easy shell)的实现,但无法理解在这种情况下 22 和 9 是什么信号。理想情况下,有一个更具描述性的常数,但我找不到列表。

【问题讨论】:

  • 理想情况下是的。如果来源属于您,请将9 更改为SIGKILL 并将22 更改为SIGTTOU

标签: c fork waitpid


【解决方案1】:
SIGTTOU 22,22,27    Stop    tty output for background process
SIGKILL  9         Term Kill signal

这些是信号编号。含义取决于平台 - 这些是 Linux 的。

见:

http://linux.about.com/od/commands/l/blcmdl7_signal.htm

信号通过内核发送到进程。在这种情况下,SIGTTOU 表示后台进程试图写入 tty。这会导致内核问题,从而引发该信号。默认情况下,该信号的结果是终止进程。

【讨论】:

    【解决方案2】:

    信号列表及其编号(包括您看到的两个)实际上是由 POSIX.1-1990 指定的,例如可以在 if you scroll down a little in this manual page 找到。

    SIGKILL       9       Term    Kill signal
    SIGTTOU   22,22,27    Stop    tty output for background process
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-12-08
      • 2019-09-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多