Question – Comment exécuter automatiquement un script Python à l'aide de systemd. Comment créer son propre service systemd en utilisant le script Python. Comment configurer le script Python pour qu'il démarre en tant que systemd. Comment gérer le service Python avec systemctl ?
Utilisez ce didacticiel pour exécuter votre script Python en tant que service système sous systemd. Vous pouvez facilement démarrer, arrêter ou redémarrer votre script à l'aide de la commande systemctl. Cela permettra également d'exécuter automatiquement le script Python au démarrage du système.
Étape 1 - Application Python factice
Tout d'abord, j'ai utilisé un script Python factice qui écoute sur un port spécifié. Modifiez un fichier Python comme suit
sudo vi /usr/bin/dummy_service.py
et ajoutez le contenu suivant pour le mannequin, vous pouvez utiliser votre propre script Python selon les besoins.
Python123456789101112 | #!/usr/bin/python3 import sockets =socket.socket(socket.AF_INET, socket.SOCK_STREAM)s.bind(("localhost", 9988))s.listen(1) while Vrai :conn, addr =s.accept() data =conn.recv(1024) conn.close() my_function_that_handles_data(data) |
Étape 2 - Créer un fichier de service
Maintenant, créez un fichier de service pour le systemd comme suit. Le fichier doit avoir .service extension sous /lib/systemd/system/ répertoire
sudo vi /lib/systemd/system/dummy.service
et ajoutez-y le contenu suivant. Modifier l'emplacement de l'annonce du nom de fichier du script Python. Mettez également à jour la description.
[Unit] Description=Dummy Service After=multi-user.target [email protected] [Service] Type=simple ExecStart=/usr/bin/python3 /usr/bin/dummy_service.py StandardInput=tty-force [Install] WantedBy=multi-user.target
Étape 3 - Activer le service nouvellement ajouté
Votre service système a été ajouté à votre service. Rechargeons le démon systemctl pour lire le nouveau fichier. Vous devez recharger ce démon à chaque fois après avoir apporté des modifications au fichier .service.
sudo systemctl daemon-reload
Activez maintenant le service pour qu'il démarre au démarrage du système, démarrez également le service à l'aide des commandes suivantes.
sudo systemctl enable dummy.service sudo systemctl start dummy.service
Étape 4 - Démarrer/Démarrer/Statut nouveau service
Enfin, vérifiez l'état de votre service en suivant la commande.
sudo systemctl status dummy.service
Utilisez les commandes ci-dessous pour arrêter, démarrer et redémarrer votre manuel d'entretien.
sudo systemctl stop dummy.service #To stop running service sudo systemctl start dummy.service #To start running service sudo systemctl restart dummy.service #To restart running service