That's great news. I'm glad that I have contributed somehow. Unfortunately ns_pid=1 didn't work with the latest github clone. uwsgi is running with "uid = 1000" config, which is the owner of runserver.py.
Thu Jan 16 13:15:05 2014 - uwsgi_spawn_daemon()/clone(): Operation not permitted [core/daemons.c line 325] On Thu, Jan 16, 2014 at 1:15 PM, Roberto De Ioris <[email protected]> wrote: > > > Well, I am not sending control+c to anyone, if it's working under uwsgi > > stack. The code simply listens most of the signals to terminate. And if > it > > was run from the console, working in the foreground for development > > purposes, yes I press control+c to stop in my console. But not when it > > gets > > executed by another program. http://pastebin.com/TkqBSiyE > > > > I think I have a clue here. It is about the emperor. See, it seems the > > master process is doing quite fine. It is just sending the proper quit > > signal to my script when it receives SIGHUP / SIGTERM or SIGINT: > > > > hu Jan 16 10:38:31 2014 - SIGINT/SIGQUIT received...killing workers... > > Thu Jan 16 10:38:31 2014 - [uwsgi-daemons] stopping daemon (pid: 15682): > > /path/to/python /path/to/runserver.py > > Bye bye! > > Bye bye! > > Thu Jan 16 10:38:33 2014 - worker 1 buried after 2 seconds > > Thu Jan 16 10:38:33 2014 - goodbye to uWSGI. > > Thu Jan 16 10:38:33 2014 - VACUUM: unix socket /tmp/app.sock removed. > > Thu Jan 16 10:38:36 2014 - *** Starting uWSGI 2.0.1 (64bit) on [Thu Jan > 16 > > 10:38:36 2014] *** > > .... > > > > I don't understand why do I get the "Bye bye!" message from my script > > twice > > but perhaps receiving 2 different signals from uwsgi, not that important. > > > > However, something seems wrong with the emperor. Only SIGHUP signal to > > emperor reloads masters gracefully so they kill their attaches too. But > > SIGTERM or SIGINT to emperor, kills the masters brutally and immediately. > > Therefore there is no master left to send any signal to my script: > > > > Thu Jan 16 10:50:20 2014 - uWSGI worker 1 screams: UAAAAAAH my master > > disconnected: i will kill myself !!! > > > > So my attached daemons hang on as zombies.. > > > > > > Ok, now it is more clear (and somewhat expected) > > Yes, the "Ragnarok" procedure in the Emperor is pretty brutal, as > effectively it simple exit(0) the Emperor (that generally it is not meant > to be shutdown). > > I will improve it for sure (maybe in time for 2.0.1 release) but in the > mean time you can add to attach-daemon2 the ns_pid=1 new option (it is on > github). It will create the processes in a new namespace, so when the > master dies they are completely destroyed. > > > > -- > Roberto De Ioris > http://unbit.it > _______________________________________________ > uWSGI mailing list > [email protected] > http://lists.unbit.it/cgi-bin/mailman/listinfo/uwsgi >
_______________________________________________ uWSGI mailing list [email protected] http://lists.unbit.it/cgi-bin/mailman/listinfo/uwsgi
