Différences
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente | ||
creer_un_service_avec_systemd [Le 11/09/2022, 11:53] moths-art Suppression des espaces en fin de ligne (détecté et corrigé via le bot wiki-corrector (https://forum.ubuntu-fr.org/viewtopic.php?id=2067892) |
creer_un_service_avec_systemd [Le 17/12/2024, 12:10] (Version actuelle) geole [Exemple de service cyclique.] servic utilisateur |
||
---|---|---|---|
Ligne 62: | Ligne 62: | ||
</code> | </code> | ||
+ | <note important>Attention : pour un service user, il faut remplacer ''WantedBy=multi-user.target'' par ''WantedBy=default.target''.</note> | ||
===== Type de services systemd ===== | ===== Type de services systemd ===== | ||
Ligne 69: | Ligne 70: | ||
* Un service de type **oneshot** est similaire à un service de type **simple**. Cependant, systemd attend que le processus se termine avant de continuer ses traitements. **Ce type de service est typiquement utilisé comme équivalent aux commandes lancées au démarrage via les scripts d'init system V**. Cela permet à systemd de remplacer ce mécanisme. De ce fait, avec systemd des nouveaux services apparaissent, alors qu'ils auraient été simplement des scripts d'init avec SysVinit. | * Un service de type **oneshot** est similaire à un service de type **simple**. Cependant, systemd attend que le processus se termine avant de continuer ses traitements. **Ce type de service est typiquement utilisé comme équivalent aux commandes lancées au démarrage via les scripts d'init system V**. Cela permet à systemd de remplacer ce mécanisme. De ce fait, avec systemd des nouveaux services apparaissent, alors qu'ils auraient été simplement des scripts d'init avec SysVinit. | ||
* Un service de type **dbus** est similaire à un service de type **simple**. Cependant, le processus du service doit obtenir un nom via D-Bus. systemd pourra alors traiter les autres unités. | * Un service de type **dbus** est similaire à un service de type **simple**. Cependant, le processus du service doit obtenir un nom via D-Bus. systemd pourra alors traiter les autres unités. | ||
- | * Un service de type **notify** est similaire à un service de type **simple**. Cependant, c'est le processus du service qui avertira systemd (via la fonction sd_notfy(3)) qu'il peut traiter les autres unités. | + | * Un service de type **notify** est similaire à un service de type **simple**. Cependant, c'est le processus du service qui avertira systemd (via la fonction sd_notify(3)) qu'il peut traiter les autres unités. |
===== Exemples de services et leur fichier de configuration===== | ===== Exemples de services et leur fichier de configuration===== | ||
Ligne 164: | Ligne 165: | ||
==== Exemple de service cyclique. ==== | ==== Exemple de service cyclique. ==== | ||
+ | === Service systeme === | ||
+ | |||
Création du fichier de timer | Création du fichier de timer | ||
<file sh /etc/systemd/system/MAJ0.timer> | <file sh /etc/systemd/system/MAJ0.timer> | ||
Ligne 189: | Ligne 192: | ||
</file> | </file> | ||
Avec les commandes de gestion associées | Avec les commandes de gestion associées | ||
- | <code>sudo systemctl enable MAJ0.timer | + | <code bash>sudo systemctl enable MAJ0.timer |
sudo systemctl start MAJ0.timer | sudo systemctl start MAJ0.timer | ||
sudo systemctl status MAJ0.timer | sudo systemctl status MAJ0.timer | ||
</code> | </code> | ||
+ | === Service utilisateur === | ||
+ | Création et activation du service | ||
+ | <code bash>cat <<"EOF" >$HOME/.config/systemd/user/Alerte.service | ||
+ | [Unit] | ||
+ | Description=Rappeler que le moment est venu. | ||
+ | [Service] | ||
+ | Type=simple | ||
+ | ExecStart=zenity --warning --text " C'est l'heure. Monseigneur." | ||
+ | EOF | ||
+ | sleep 1 | ||
+ | systemctl --user enable Alerte.service; | ||
+ | systemctl --user start Alerte.service;</code> | ||
+ | Création et activation des déclenchements | ||
+ | <code bash>cat <<"EOF" >$HOME/.config/systemd/user/Alerte.timer | ||
+ | [Unit] | ||
+ | Description=indique les moments retenus. | ||
+ | [Timer] | ||
+ | OnCalendar=Mon-Sat *-*-* 10:20:30 | ||
+ | OnCalendar=Sun *-*-* 12:14:16 | ||
+ | [Install] | ||
+ | WantedBy=timers.target | ||
+ | EOF | ||
+ | sleep 1 | ||
+ | systemctl --user enable Alerte.timer; | ||
+ | systemctl --user start Alerte.timer;</code> | ||
+ | |||
+ | |||
====Exemple de service avancé avec la base graphe neo4j==== | ====Exemple de service avancé avec la base graphe neo4j==== |