Python démon et systemd service

J'ai un simple script Python fonctionne comme un démon. Je suis en train de créer systemd script pour pouvoir lancer ce script au démarrage.

Actuel systemd script:

[Unit]
Description=Text
After=syslog.target

[Service]
Type=forking
User=node
Group=node
WorkingDirectory=/home/node/Node/
PIDFile=/var/run/zebra.pid
ExecStart=/home/node/Node/node.py

[Install]
WantedBy=multi-user.target

node.py:

if __name__ == '__main__':
    with daemon.DaemonContext():
        check = Node()
        check.run()

run contient while True boucle.

J'essaie d'exécuter ce service avec systemctl start zebra-node.service. Malheureusement, de services jamais été terminé en indiquant la séquence, je dois appuyer sur Ctrl+C.
Le Script est en cours d'exécution, mais le statut est en cours d'activation et après un moment il changer pour la désactivation.
Maintenant, je suis en utilisant python-démon (mais avant j'ai essayé sans et les symptômes étaient similaires).

Dois-je mettre en œuvre certaines des fonctionnalités supplémentaires à mon script ou est systemd fichier incorrect?

  • N'a la réponse à résoudre votre problème? Si pas, essayez de définir daemon_context=True lors de la création de la DaemonContext(). Il peut fonctionner.
  • C'est dommage, votre code Python exemple n'est pas complète (il manque l'importation de daemon et pas clair, où la Node vient) alors il n'est pas facile/possible de reproduire votre situation.
  • Cette indirectement liés à la question, mais peut vous aider: unix.stackexchange.com/a/226853/33386
InformationsquelleAutor pawelbial | 2012-10-25