2016-04-27 6 views
4

Я хочу написать демона в python, который запускается через systemd.Systemd Daemon в Python с поддержкой watchdog

Я хотел использовать Type=notify, таким образом, мне не нужно делать двойную вилку магии.

Согласно документации:

Эталонная реализация для этого уведомления обеспечивается libsystemd-daemon.so

... как сделать это с помощью Python?

+0

Возможно, связано: https://www.freedesktop.org/software/systemd/python-systemd/daemon.html http://stackoverflow.com/questions/13069634/python-daemon-and-systemd-service –

+0

@ Robᵩ Вопрос, который вы упомянули, не решает мой вопрос, так как мой вопрос касается демона с поддержкой ** watchdog **. Если мой демон висит в бесконечном цикле, я хочу, чтобы systemd знал, что служба не отвечает. Без контрольных системных вещей мой сервис жив до тех пор, пока выполняется процесс. – guettli

ответ

5

Возможно, вы можете использовать модуль python sdnotify, который представляет собой реализацию на чистом питоне протокола sd_notify. На самом деле протокол довольно прост, поэтому реализация модуля довольно короткая.

Чтобы использовать механизмы сторожевого таймера, вы должны добавить файл WatchdocSec=<smth> в файл устройства, а затем отправить WATCHDOG=1 сообщений из вашей службы. Проверьте также вариант Restart=.

+0

Ницца, пакет можно установить через pip. Спасибо. – guettli

+0

Вот как я это обнаружил некоторое время назад :). Инструмент 'pip search' весьма удобен. – user3159253