Демон Systemd на Python с поддержкой сторожевого таймера

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

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

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

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

... как это сделать с Python?


person guettli    schedule 27.04.2016    source источник
comment
Возможно связанные: freedesktop.org/software/systemd/python-systemd/daemon .html stackoverflow.com/questions/13069634 /   -  person Robᵩ    schedule 27.04.2016
comment
@ Robᵩ Вопрос, который вы упомянули, не решает мой вопрос, поскольку мой вопрос касается демона с поддержкой сторожевого таймера. Если мой демон зависает в бесконечном цикле, я хочу, чтобы systemd знала, что служба не отвечает. Без сторожевого пса systemd мой сервис работает до тех пор, пока выполняется процесс.   -  person guettli    schedule 02.05.2016


Ответы (2)


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

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

person user3159253    schedule 09.05.2016
comment
Хорошо, пакет можно установить через pip. Спасибо. - person guettli; 09.05.2016
comment
Вот как я это обнаружил некоторое время назад :). pip search удобство. - person user3159253; 09.05.2016

используйте пакет
https://pypi.org/project/systemd-python/, он является официальным разработчиком systemd и поддерживается.

person qrtLs    schedule 25.04.2020
comment
Вы не ответили на вопрос. Приведите пример того, как уведомить systemd от python с помощью этого пакета. - person shrewmouse; 23.09.2020