====== 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**
++++