Я новичок в демонах, так что извиняюсь, если это вопрос новичков.
В нескольких других ответах (например, этот вопрос) люди предложили python-daemon, так как он полностью реализует стандарт PEP 3143.
К сожалению, python-daemon немного освещает документацию (или, скорее всего, я немного озадачен знаниями/опытом...;)), и я думаю, что у меня, вероятно, отсутствует что-то действительно основное. Вот что я делаю:
У меня есть следующее:
import daemon
logfile = open('daemon.log', 'w')
context = daemon.DaemonContext(stdout = logfile, stderr = logfile)
context.open()
with context:
do_something_1()
do_something_2()
Вопрос: Как настроить демона с помощью python-daemon, как я могу его запустить и остановить?
Боковые заметки:
Я в основном угадываю, как/здесь следует использовать метод .open()
- docs не были ясны в этом вопросе. То же самое происходит, если я включаю это или нет.
Итак, что мне теперь делать? Когда я пытаюсь запустить этот файл, например:
python startConsumerDaemons.py
он работает do_something_1()
, но не второй. И, похоже, программа остается в окне терминала. IE, stdout не перенаправляется, и когда я закрываю окно терминала, процесс уничтожается. Итак, я уверен, что я делаю что-то неправильно здесь... что я должен делать по-другому?
И, наконец, как только я запустил демона, как его остановить или перезапустить (например, если я вношу изменения в базовый код)?