====== Création service Systemd ====== * [[/Article/|Les articles]] * [[/Contact/]] L'idée est d'illustrer la mise en place d'un service réalisé par un utilisateur **pseudo**. Pour cela on communique avec lui par un tube nommé **sauvegarde.entrée** et la réponse à l'ordre est rendu par un tube nommé **sauvegarde.sortie**. ++++ Le texte du service /Maison/pseudo/service/sauvegarde.service est :| [Unit] Description=Sauvegarde data After=systemd-user-sessions.service [Service] Type=simple ExecStart=/Maison/pseudo/service/sauvegarde.script.sh User=pseudo Group=pseudo [Install] WantedBy=multi-user.target ++++ ++++ Le texte du script /Maison/pseudo/service/sauvegarde.script.sh est | #! /usr/bin/bash #----------------------------------------------------------------- # #----------------------------------------------------------------- rep=/Maison/pseudo/service while true do while read ordre do eval "$ordre" done < $rep/sauvegarde.entrée > $rep/sauvegarde.sortie done exit 0 **Rappel** : **mkfifo** est la commande qui permet de créer les "tubes" service_ordre et service_reponse, donc pour les créer il faut passer la commande : mkfifo /Maison/pseudo/service/sauvegarde.entrée /Maison/pseudo/service/sauvegarde.sortie ++++ ++++ Déclarer son service auprès du système | **Pour cela il faut** * se rendre dans un terminal, * être administrateur ( avoir le droit de passer des commandes **sudo** ) * et passer les commandes suivantes : **Remarque** : dans la suite de ce tutoriel, vous remarquerez qu'à chaque fois que vous utiliserez la commande **systemctl** il vous sera demandé votre mot de passe, seul un **administrateur** est habilité à l'utiliser ;-) systemctl enable /Maison/pseudo/service/sauvegarde.service en réponse le commande **systemctl** informe de la création d'un lien symbolique en cas de succès =) et l'on peut alors démarrer le service en passant la commande systemctl start sauvegarde.service Pour arrêter le service il suffit de passer la commande systemctl stop sauvegarde.service **Remarques** : - Lors d'une modification du service ( modification du script ) il ne faut pas oublier de stopper le service puis de le relancer. - Lors de l'arrêt de la machine le système arrête "proprement" le service - Lors du redémarrage de la machine il ne faut pas de repasser le commande **systemctl enable /Maison/pseudo/service/sauvegarde.service** si l'on souhaite retirer le service du sytème il faut passer la commande **systemctl disable sauvegarde.service** - Il est possible de savoir si un service est reconnu par le système. Dans l'exemple le test est **systemctl is-enabled sauvegarde.service** en cas de succès la réponse est **enabled** - Il est possible de savoir si un service est lancé ou non dans le système. Dans l'exemple le test est **systemctl is-activate sauvegarde.service** en cas de succès la réponse est **active** ++++