web-dev-qa-db-fra.com

Programme d'installation Python en tant que service systemd

J'ai créé un programme pour enregistrer certaines statistiques système et je voudrais l'exécuter en tant que service Linux afin de pouvoir le gérer facilement (démarrer, arrêter, etc.). J'ai passé des heures à rechercher et à essayer des solutions, mais je n'arrive pas à configurer correctement mon fichier de service systemd.

Jusqu'ici j'ai ceci dans mon fichier de service: (clopper est mon nom d'utilisateur, resourciter est mon python nom de programme)

[Unit]
Description=Simplified Resourciter logger service
After=syslog.target

[Service]
Type=simple
User=clopper
Group=clopper
WorkingDirectory=/home/clopper/resourciter/
ExecStart=/usr/bin/python3 /home/clopper/resourciter/runMonitor.py
StandardOutput=syslog
StandardError=syslog

[Install]
WantedBy=multi-user.target

Mais je continue à avoir cette erreur lorsque j'essaie de démarrer le service:

pam_unix(Sudo:auth): auth could not identify password for [clopper]

Je n'arrive pas à trouver une référence définitive sur les tenants et les aboutissants de la configuration d'un fichier de service Systemd.

Des idées?

1
Jyclop

On dirait que votre script Python essaie d'utiliser Sudo pour exécuter des commandes en tant que root.

Cela ne fonctionnera pas vraiment dès la configuration de votre script en tant que service, car aucun terminal n'est attaché au script, donc Sudo n'aura aucun moyen de demander un mot de passe pour permettre à votre script d'exécuter le script. commande en tant que root.

Il existe des moyens de configurer Sudo pour qu'il exécute des commandes sans demander de mot de passe et sans exiger la connexion d'un terminal ... Mais avant de suivre cette route, envisageriez-vous d'exécuter tout votre script en tant que root et de ne pas utiliser Sudo à l'intérieur? Cela simplifierait les choses ...

2
filbranden