J'ai mis en place un service sur Raspbian (Jessie) en utilisant systemd pour le faire démarrer après le démarrage. La configuration du démon ressemble à ceci:Comment rediriger correctement stdout/stderr à partir d'un service systemd sur Raspbian?
[Unit]
After=multi-user.target
[Service]
Type=idle
User=root
ExecStart=/bin/sh -c "exec /home/pi/sources/mydaemon.py >> /home/pi/mydaemon.log 2>&1"
[Install]
WantedBy=multi-user.target
Cette redirection >>
ne fonctionne pas. J'ai essayé la plupart des options disponibles pour StandardOutput
et StandardError
mais ils ne finissent jamais d'imprimer la sortie de mon script vers /var/log/daemon.log et journalctl -u mydaemon.service
affiche uniquement les messages sur le service démarré et arrêté.
Je ne fais rien de drôle avec les descripteurs de fichiers du script actuellement. Je veux juste que mes déclarations print()
ou logging.info()
apparaissent quelque part je peux les lire. Des idées?
(Pour être clair, le démon ne doit exécuter en tant que root. Cela pourrait-il avoir quelque chose à voir avec mon problème d'impression?)
Cela semble fonctionner seulement une partie du temps. Je ne sais pas ce qui ne va pas avec systemd ou journalctl sur Raspbian Jessie, mais je pense qu'il y a un problème qui interfère avec la journalisation. Mon script tweete, donc je sais quand il est activé, mais les instructions d'impression dans le script n'apparaissent généralement pas dans le journal. – Eric
En conjonction avec votre réponse, je vais essayer cette méthode à partir de mon script pour voir si j'ai plus de chance (envoyer explicitement des messages au journal) http://stackoverflow.com/questions/34588421/how-to- log-to-journald-systemd-via-python – Eric