程序收到信号SIGIO

时间:2011-09-14 10:03:47

标签: linux nginx signals

我在Nginx的error.log中看到以下错误,

  

[通知] 12451#0:收到信号29(SIGIO)

我想知道某个程序在哪种情况下会收到SIGIO

1 个答案:

答案 0 :(得分:2)

对于异步信令代码,应执行以下步骤。

首先,您应该允许您的进程接收SIGIO然后 您的套接字或管道应该设置为异步模式。

在代码中搜索这些行

//allow the process to receive SIGIO
fcntl(fd, F_SETOWN, getpid());

//Make socket/pipe non-blocking
fcntl(fd, F_SETFL, FASYNC);

//Make socket/pipe non-blocking
fcntl(fd, F_SETFL, O_NONBLOCK);

要搜索的关键字有: F_SETOWN FASYNC O_NONBLOCK