Restarting a daemon
Not exactly a Python question, but I thought I would start here. I have a server that runs as a daemon. I can restart the server manually with the command myserver restart This command starts a new myserver which first looks up the pid for the one that is running and sends it a terminate signal. The new one then daemonizes itself. I want the server to be able to restart itself. Will it work to have myserver issue myserver restart using os.system? I fear that the new myserver, which will be running in a subshell, will terminate the subshell along with the old myserver when it sends the terminate signal to the old myserver. If so, what is the correct way to restart the daemon? Will it work to run the restart command in a subprocess rather than a subshell or will a subprocess also terminate when its parent terminates? -- Jeffrey Barish -- http://mail.python.org/mailman/listinfo/python-list
Re: Restarting a daemon
On Tue, 2011-04-26 at 06:13 -0600, Jeffrey Barish wrote: Not exactly a Python question, but I thought I would start here. I have a server that runs as a daemon. I can restart the server manually with the command myserver restart This command starts a new myserver which first looks up the pid for the one that is running and sends it a terminate signal. The new one then daemonizes itself. I want the server to be able to restart itself. Will it work to have myserver issue myserver restart using os.system? I fear that the new myserver, which will be running in a subshell, will terminate the subshell along with the old myserver when it sends the terminate signal to the old myserver. If so, what is the correct way to restart the daemon? Will it work to run the restart command in a subprocess rather than a subshell or will a subprocess also terminate when its parent terminates? You should look into tools like daemon-tools, or similar. It already solves this (and many other) problems. -a -- http://mail.python.org/mailman/listinfo/python-list
Re: Restarting a daemon
On Tue, Apr 26, 2011 at 10:13 PM, Jeffrey Barish jeff_bar...@earthlink.net wrote: Not exactly a Python question, but I thought I would start here. I have a server that runs as a daemon. I can restart the server manually with the command myserver restart This command starts a new myserver which first looks up the pid for the one that is running and sends it a terminate signal. The new one then daemonizes itself. What job manager do you have? Can you set up a script in /etc/init.d or /etc/init and then use that to restart the daemon? Upstart scripts can be managed with the 'initctl' command, for instance. Chris Angelico -- http://mail.python.org/mailman/listinfo/python-list