Take the 2-minute tour ×
Server Fault is a question and answer site for system and network administrators. It's 100% free, no registration required.

I have a django application which is executing a bash script. I require the nginx server to restart so I run /etc/init.d/nginx reload which works great. I have been using restart uwsgi for uwsgi but I need to do a graceful reload instead of a hard server restart.

How can I do this?


I am currently running a bash reload uwsgi function through subprocess.popen. It seems to be only reloading the process that is calling the subprocess not all sites being hosted by the uwsgi instance. importing uwsgi and running uwsgi.reload seems to also only effect the calling process. Is there a switch for either uwsgi through python or bash that allows restarting all uwsgi proces

share|improve this question

2 Answers 2

up vote 0 down vote accepted

You can do it in python

import uwsgi
uwsgi.reload()
share|improve this answer
    
the uwsgi.reload() is working intermittently. it seems to be restarting the server before some of my processes are finished. i'm running this through a django application and want it to restart the entire server. –  mongoose_za Jun 2 '11 at 20:35

You can restart uWSGI by sending the SIGHUP signal to your uWSGI process like so:

kill -HUP 12345

Where 12345 would be the process id of your uWSGI process. If you want to automate this in a bash script, you can have uWSGI write away it's process id by supplying the pidfile option, for example like:

--pidfile=/tmp/uwsgi.pid

Then you can reload the process by:

uwsgi --reload /tmp/uwsgi.pid

Remember that you can only reload uWSGI when it's running with the master process mode, but that's usually the case though.

More information: http://uwsgi-docs.readthedocs.org/en/latest/Management.html

share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.