2011-09-14 6 views
0

Je vois l'erreur suivante dans mes error.log l » Nginx de,programe signal reçu SIGIO

[Avis] 12451 # 0: le signal 29 (SIGIO) reçu

Je veux savoir dans Dans quel cas un programme reçoit-il un SIGIO?

Répondre

2

Pour le code de signalisation asynchrone, procédez comme suit.

Vous devez d'abord autoriser votre processus à recevoir SIGIO, puis votre socket ou votre tube doit être mis en mode asynchrone.

Rechercher ces lignes dans votre code

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

et

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

ou

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

Mots-clés pour la recherche sont: F_SETOWN, FASYNC et O_NONBLOCK