Différences
Ci-dessous, les différences entre deux révisions de la page.
| Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédente | ||
| creer_un_service_avec_systemd [Le 11/09/2022, 11:53] – 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) moths-art | creer_un_service_avec_systemd [Le 27/05/2026, 19:38] (Version actuelle) – mise en forme krodelabestiole | ||
|---|---|---|---|
| Ligne 1: | Ligne 1: | ||
| {{tag> | {{tag> | ||
| - | ---- | ||
| ====== Créer un nouveau service avec systemd ====== | ====== Créer un nouveau service avec systemd ====== | ||
| + | |||
| Ce tutoriel décrit la démarche à suivre pour transformer un programme en un service [[: | Ce tutoriel décrit la démarche à suivre pour transformer un programme en un service [[: | ||
| - | |||
| ===== Pré-requis ===== | ===== Pré-requis ===== | ||
| - | | + | |
| + | | ||
| * Savoir utiliser le [[: | * Savoir utiliser le [[: | ||
| * Avoir [[: | * Avoir [[: | ||
| - | |||
| - | |||
| ===== Principes de base===== | ===== Principes de base===== | ||
| + | |||
| Comme [[: | Comme [[: | ||
| Ces fichiers de configuration se trouvent dans **/ | Ces fichiers de configuration se trouvent dans **/ | ||
| Ligne 32: | Ligne 31: | ||
| <note help> | <note help> | ||
| Il est possible d' | Il est possible d' | ||
| - | |||
| Pour un service utilisateur il faut ajouter aux commandes le paramètre --user : | Pour un service utilisateur il faut ajouter aux commandes le paramètre --user : | ||
| Ligne 61: | Ligne 59: | ||
| systemctl --user edit <nom du service> | systemctl --user edit <nom du service> | ||
| </ | </ | ||
| + | |||
| + | <note important> | ||
| + | |||
| + | ===== Qu'est ce qu'un timer ===== | ||
| + | |||
| + | Les timers sont des fichiers de programmation qui vont se charger de lancer des services à intervalles réguliers. | ||
| + | |||
| + | Quand vous créez un timer, il doit avoir l' | ||
| + | |||
| + | Les timers remplacent le planificateur de tâches cron sur les systèmes modernes. | ||
| ===== Type de services systemd ===== | ===== Type de services systemd ===== | ||
| Ligne 69: | Ligne 77: | ||
| * 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, | * 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, | ||
| * 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 | + | * 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 |
| ===== Exemples de services et leur fichier de configuration===== | ===== Exemples de services et leur fichier de configuration===== | ||
| Ligne 155: | Ligne 163: | ||
| systemctl enable syncthing@Milou.service | systemctl enable syncthing@Milou.service | ||
| </ | </ | ||
| - | **Qu' | ||
| - | Les timers sont des fichiers | + | ==== Exemple |
| - | + | ||
| - | Quand vous créez un timer, il doit avoir l' | + | |
| - | Les timers «pourraient presque» remplacer le planificateur de tâches cron. | + | === Service systeme === |
| - | ==== Exemple de service cyclique. ==== | ||
| Création du fichier de timer | Création du fichier de timer | ||
| <file sh / | <file sh / | ||
| Ligne 189: | Ligne 193: | ||
| </ | </ | ||
| Avec les commandes de gestion associées | Avec les commandes de gestion associées | ||
| - | < | + | < |
| sudo systemctl start MAJ0.timer | sudo systemctl start MAJ0.timer | ||
| sudo systemctl status MAJ0.timer | sudo systemctl status MAJ0.timer | ||
| </ | </ | ||
| + | === Service utilisateur === | ||
| + | Création et activation du service | ||
| + | <code bash>cat <<" | ||
| + | [Unit] | ||
| + | Description=Rappeler que le moment est venu. | ||
| + | [Service] | ||
| + | Type=simple | ||
| + | ExecStart=zenity --warning --text " C'est l' | ||
| + | EOF | ||
| + | sleep 1 | ||
| + | systemctl --user enable Alerte.service; | ||
| + | systemctl --user start Alerte.service;</ | ||
| + | Création et activation des déclenchements | ||
| + | <code bash>cat <<" | ||
| + | [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;</ | ||
| + | |||
| + | |||
| ====Exemple de service avancé avec la base graphe neo4j==== | ====Exemple de service avancé avec la base graphe neo4j==== | ||
| Ligne 298: | Ligne 329: | ||
| ===== Ressources ====== | ===== Ressources ====== | ||
| * [[wpfr> | * [[wpfr> | ||
| - | * [[https:// | + | * [[https:// |
| + | * <del>[[https:// | ||
| * [[https:// | * [[https:// | ||
| * [[https:// | * [[https:// | ||
