From 2b5b0cf1bc21fc037ca84a99c5013fbf53ece760 Mon Sep 17 00:00:00 2001 From: "roberto@voldemort" Date: Thu, 5 Aug 2010 12:21:34 +0200 Subject: [PATCH] fix spooler stdin --- spooler.c | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/spooler.c b/spooler.c index be06926d..05fc8535 100644 --- a/spooler.c +++ b/spooler.c @@ -78,6 +78,9 @@ void spooler(struct uwsgi_server *uwsgi, PyObject * uwsgi_module_dict) { int rlen = 0; int datasize; + // prevent process blindly reading stdin to make mess + int nullfd; + struct uwsgi_header uh; char *key; @@ -114,6 +117,17 @@ void spooler(struct uwsgi_server *uwsgi, PyObject * uwsgi_module_dict) { uwsgi_log( "lowering spooler priority to %d\n", PRIO_MAX); setpriority(PRIO_PROCESS, getpid(), PRIO_MAX); + nullfd = open("/dev/null", O_RDONLY); + if (nullfd < 0) { + uwsgi_error("open()"); + exit(1); + } + + if (nullfd != 0) { + dup2(nullfd, 0); + close(nullfd); + } + for (;;) { sleep(uwsgi->shared->spooler_frequency);