Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

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/09/2019, 02:39]
90.108.46.121 [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 21: Ligne 21:
 <​code>​sudo cp -r /​etc/​systemd/​system /​etc/​systemd/​system.save$(date +%Y%m%d)</​code></​note>​ <​code>​sudo cp -r /​etc/​systemd/​system /​etc/​systemd/​system.save$(date +%Y%m%d)</​code></​note>​
  
-Une fois le fichier de configuration de service ​crée, il faut l'​activer pour qu'il soit pris en compte par le système et lancé à chaque démarrage.+Une fois le fichier de configuration de service ​créé, il faut l'​activer pour qu'il soit pris en compte par le système et lancé à chaque démarrage.
 <​code>​systemctl enable <nom du service>​.service</​code>​ <​code>​systemctl enable <nom du service>​.service</​code>​
  
Ligne 29: Ligne 29:
  
 Pour plus d'​infos sur les diverses commandes de gestion, voir la page [[:​systemd#​les_services|systemd]] Pour plus d'​infos sur les diverses commandes de gestion, voir la page [[:​systemd#​les_services|systemd]]
 +
 +<note help>
 +Il est possible d'​utiliser un service au niveau utilisateur,​ dans ce cas, les fichiers de configuration se trouvent dans **~/​.config/​systemd/​user/​**
 +
 +
 +Pour un service utilisateur il faut ajouter aux commandes le paramètre --user :
 +
 +<​code>​
 +systemctl --user enable <nom du service>​.service
 +systemctl --user start <nom du service>​.service
 +systemctl --user status <nom du service>​.service
 +</​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 50: 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 62: Ligne 94:
  
 ====Exemple de service de type "​simple"​==== ====Exemple de service de type "​simple"​====
-Un exemple est le service deluged qui permet de lancer le service correspondant à la version ​deamon ​du client bit-torrent [[:​deluge]].+Un exemple est le service deluged qui permet de lancer le service correspondant à la version ​daemon ​du client bit-torrent [[:​deluge]].
  
 <file txt /​etc/​systemd/​system/​deluged.service>​ <file txt /​etc/​systemd/​system/​deluged.service>​
Ligne 85: 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 123: 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 172: 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 190: 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 201: Ligne 241:
 RuntimeDirectory=neo4j RuntimeDirectory=neo4j
  
-#Droits d'​accès sur le réperoitre ​/run/neo4j.+#Droits d'​accès sur le répertoire ​/run/neo4j.
 # Utilisateur ​ Groupe ​   Les_autres # Utilisateur ​ Groupe ​   Les_autres
 #     ​rwx ​       rwx        --- #     ​rwx ​       rwx        ---
Ligne 239: 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 258: 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)
  • creer_un_service_avec_systemd.1568507994.txt.gz
  • Dernière modification: Le 15/09/2019, 02:39
  • par 90.108.46.121