Nginx not starting with named pipe (fifo) for access_log


there seems to be a issue with Nginx and named pipes (fifo).

Tested nginx versions:

Issue description:
As soon as a named pipe is defined as access_log, nginx refuses to
start. It just stales during the start and that’s it. The only you can
do is kill the process.
The named pipe has been created with: mkfifo -m 0666 /var/log/test.log

I have tested 2 versions of Nginx (1.1.19, 1.4.4) using Ubuntus
repository. Different locations and different permissions of the named
pipe have been tried, didn’t help.
Other programs work just fine with the named pipe, only Nginx seems to
refuse it.

http {
access_log /var/log/nginx/access.log;
error_log /var/log/nginx/error.log;
access_log /var/log/test.log;

strace output:
open(“/var/log/nginx/access.log”, O_WRONLY|O_CREAT|O_APPEND, 0644) = 5
fcntl(5, F_SETFD, FD_CLOEXEC) = 0
open(“/var/log/nginx/error.log”, O_WRONLY|O_CREAT|O_APPEND, 0644) = 6
fcntl(6, F_SETFD, FD_CLOEXEC) = 0
open(“/var/log/test.log”, O_WRONLY|O_CREAT|O_APPEND, 0644
[ CTRL+C ]

Did anyone else experience such behavior? I tried searching for it but
couldn’t find anything, only people seeming to successfully use named
pipes (eg. in conjunction with syslog-ng).


Do you have a program set up to read from the other end of those pipes?