web-dev-qa-db-fra.com

Exécution du script python en tant que service et démarrage au démarrage du système

J'ai écrit un script python pour ajouter un indicateur d'application dans la barre de menus d'ubuntu.

Je veux l'exécuter en tant que service qui démarre au démarrage du système.

J'ai essayé de chercher d'autres réponses, mais aucune d'entre elles n'a fonctionné pour moi, car elles étaient obsolètes, utilisaient des fonctionnalités obsolètes ou ne fonctionnaient tout simplement pas pour moi.

J'utilise Ubuntu 16.04.

Guidez-moi s'il-vous-plaît. Merci

2
np_complete

Il y a une différence si vous devez exécuter en tant que service ou simplement l'exécuter , car votre question implique que le faire fonctionner suffirait .

Pour démarrer automatiquement un programme/script

Utilisez le programme Applications de démarrage de votre Ubuntu.

Placez le script (exécutable) quelque part et créez une nouvelle entrée qui, en gros, pointe uniquement sur le script.
Assurez-vous que le script a un Shebang correct: #!/usr/bin/env python ou similaire.
Assurez-vous également que l'entrée est activée.

En gros, cela crée un nouveau fichier .desktop dans ~/.config/autostart. Vous pouvez modifier le contenu de ce fichier sur votre bureau, mais ne supprimez pas le X-MATE-Autostart-enabled=true (cette ligne peut être légèrement différente en fonction de votre DE).

Pour créer un service adéquat

Ubuntu 16 utilise systemd et vous devez créer un service pour cela. Créer un service systemd est un peu plus difficile, mais il existe beaucoup de bons guides comme:

Cependant, il est principalement utilisé pour les démons d'arrière-plan, et non pour les indicateurs ou autres éléments de l'interface graphique. Vous devez donc vous en tenir aux applications de démarrage.

3
Roberts Gotlaufs