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 15/11/2020, 17:29] 176.129.243.67 [Exemple de service avancé avec la base graphe neo4j] |
creer_un_service_avec_systemd [Le 11/09/2022, 11:53] (Version actuelle) 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) |
||
---|---|---|---|
Ligne 44: | Ligne 44: | ||
</note> | </note> | ||
- | <note importante>il faudrait documenter la commande <code>systemctl edit</code></note> | + | Pour créer un service utilisateur : |
+ | |||
+ | <code> | ||
+ | systemctl --user edit <nom du service>.service --full --force | ||
+ | </code> | ||
+ | |||
+ | Pour éditer un service utilisateur : | ||
+ | |||
+ | <code> | ||
+ | systemctl --user edit <nom du service>.service --full | ||
+ | </code> | ||
+ | |||
+ | Pour ajouter une surcharge (drop-in) sur un service utilisateur : | ||
+ | |||
+ | <code> | ||
+ | systemctl --user edit <nom du service>.service | ||
+ | </code> | ||
===== Type de services systemd ===== | ===== Type de services systemd ===== | ||
Ligne 66: | Ligne 82: | ||
RemainAfterExit=yes | RemainAfterExit=yes | ||
ExecStart=/usr/libexec/iptables.init start | ExecStart=/usr/libexec/iptables.init start | ||
- | ExecStop=/usr/libexec/iptables.init stop | + | ExecStop=/usr/libexec/iptables.init stop |
</file> | </file> | ||
Ligne 101: | Ligne 117: | ||
[Install] | [Install] | ||
WantedBy=multi-user.target | WantedBy=multi-user.target | ||
- | </file> | + | </file> |
* ''Description'' permet de donner une description du service qui apparaîtra lors de l'utilisation de la commande ''systemctl status <nom_du_service>'' | * ''Description'' permet de donner une description du service qui apparaîtra lors de l'utilisation de la commande ''systemctl status <nom_du_service>'' | ||
Ligne 139: | Ligne 155: | ||
systemctl enable syncthing@Milou.service | systemctl enable syncthing@Milou.service | ||
</code> | </code> | ||
+ | **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'extension .timer. Un service .service du même nom doit exister. (le service est souvent un service minimaliste, de type oneshot, permettant de lancer une commande) | ||
+ | |||
+ | Les timers «pourraient presque» remplacer le planificateur de tâches cron. | ||
+ | |||
==== Exemple de service cyclique. ==== | ==== Exemple de service cyclique. ==== | ||
- | 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> | ||
[Unit] | [Unit] | ||
Description=Lance une mise à jour de l'ordinateur quinze minutes après le démarrage de la machine et itère toutes les trente minutes. | Description=Lance une mise à jour de l'ordinateur quinze minutes après le démarrage de la machine et itère toutes les trente minutes. | ||
[Timer] | [Timer] | ||
- | OnBootSec=15minutes | + | OnBootSec=15minutes |
# le service démarrera 15 minutes après le démarrage de la machine | # le service démarrera 15 minutes après le démarrage de la machine | ||
- | OnUnitActiveSec=30minutes | + | OnUnitActiveSec=30minutes |
Persistent=true | Persistent=true | ||
# le service démarrera toutes les trente minutes après la dernière activation du timer | # le service démarrera toutes les trente minutes après la dernière activation du timer | ||
- | ### voir toutes les possibilités de choix dans ce document http://man7.org/linux/man-pages/man7/systemd.time.7.html | + | ### voir toutes les possibilités de choix dans ce document https://man7.org/linux/man-pages/man7/systemd.time.7.html |
[Install] | [Install] | ||
WantedBy=timers.target | WantedBy=timers.target | ||
Ligne 188: | Ligne 212: | ||
# Type de l'Unité systemd. | # Type de l'Unité systemd. | ||
- | #Les différents types d'unités sont : | + | #Les différents types d'unités sont : |
# service : pour un service/démon ; | # service : pour un service/démon ; | ||
# socket : pour une socket réseau (de tous types : UNIX, Internet, fichier etc.) ; | # socket : pour une socket réseau (de tous types : UNIX, Internet, fichier etc.) ; | ||
Ligne 206: | Ligne 230: | ||
#https://www.freedesktop.org/software/systemd/man/systemd.service.html | #https://www.freedesktop.org/software/systemd/man/systemd.service.html | ||
[Service] | [Service] | ||
- | #Lance le service dans un processus système indépendant. | + | #Lance le service dans un processus système indépendant. |
# simple, forking, oneshot, dbus, notify ou idle sont les valeurs possibles de Type=. | # simple, forking, oneshot, dbus, notify ou idle sont les valeurs possibles de Type=. | ||
Type=forking | Type=forking | ||
Ligne 255: | Ligne 279: | ||
#Définit des limites logicielles ou matérielles pour le processus exécuté. | #Définit des limites logicielles ou matérielles pour le processus exécuté. | ||
#https://www.freedesktop.org/software/systemd/man/systemd.exec.html# | #https://www.freedesktop.org/software/systemd/man/systemd.exec.html# | ||
- | # Correspond à ulimit -n 60000. | + | # Correspond à ulimit -n 60000. |
# C'est le nombre maximum de fichiers pouvant être ouvert simultanément pour les processus fils du service. | # C'est le nombre maximum de fichiers pouvant être ouvert simultanément pour les processus fils du service. | ||
LimitNOFILE=60000 | LimitNOFILE=60000 | ||
Ligne 274: | Ligne 298: | ||
===== Ressources ====== | ===== Ressources ====== | ||
* [[wpfr>systemd|systemd]] sur Wikipedia en français | * [[wpfr>systemd|systemd]] sur Wikipedia en français | ||
- | * [[http://www.freedesktop.org/wiki/Software/systemd/|Site officiel de systemd]] | + | * [[https://www.freedesktop.org/wiki/Software/systemd/|Site officiel de systemd]] |
- | * [[http://doc.fedora-fr.org/wiki/Systemd|Fedora et systemd]] notamment pour la partie [[#Type de service systemd]] | + | * [[https://doc.fedora-fr.org/wiki/Systemd|Fedora et systemd]] notamment pour la partie [[#Type de service systemd]] |
* [[https://docs.syncthing.net/users/autostart.html#using-systemd|Documentation de Syncthing]] Créer un service systemd pour lancer Syncthing au démarrage (en anglais) | * [[https://docs.syncthing.net/users/autostart.html#using-systemd|Documentation de Syncthing]] Créer un service systemd pour lancer Syncthing au démarrage (en anglais) | ||
* [[https://deluge.readthedocs.io/en/latest/how-to/systemd-service.html|Documentation de Deluge]] Créer un service systemd pour lancer Deluge au démarrage (en anglais) | * [[https://deluge.readthedocs.io/en/latest/how-to/systemd-service.html|Documentation de Deluge]] Créer un service systemd pour lancer Deluge au démarrage (en anglais) |