I'm new to daemons so apologies if this is a newbie question.
In several other answers (for example, this question) people suggested the python-daemon package was the way to go because it fully implements the PEP 3143 standard.
Unfortunately, python-daemon is a bit light on documentation (or more likely I am a bit light on knowledge / experience... ;) ), and I think I am probably missing something really basic. Here's what I'm doing:
I have the following:
import daemon
logfile = open('daemon.log', 'w')
context = daemon.DaemonContext(stdout = logfile, stderr = logfile)
context.open()
with context:
do_something_1()
do_something_2()
Question: How do I set up a daemon with python-daemon, how can I start it and stop it?
Side notes:
I'm basically taking a wild guess about how / whether the .open()
method should be used here -- docs were not real clear on this point. Same thing seems to happen whether I include it or not.
So, now what do I do? When I try running this file, eg:
python startConsumerDaemons.py
it appears to run do_something_1()
, but not the second. And, it appears to leave the program attached to the terminal window. IE, stdout isn't redirected, and when I close the terminal window the process is killed. So, I'm pretty sure I'm doing something wrong here... what should I be doing differently?
And, lastly, once I get the daemon running, how do I stop / restart it (for example if I make changes to the underlying code)?