Outils pour utilisateurs

Outils du site


systemd

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édentesRévision précédente
Prochaine révision
Révision précédente
systemd [2018/10/13 20:32] – modification externe 127.0.0.1systemd [2025/01/07 20:19] (Version actuelle) luc
Ligne 28: Ligne 28:
  
 Il faut donc créer un fichier ''super_Nom.service'' qu'on pourra mettre dans ''/etc/systemd/system'' Il faut donc créer un fichier ''super_Nom.service'' qu'on pourra mettre dans ''/etc/systemd/system''
-<code systemd>+<code ini>
 [Unit] [Unit]
 Description=Gogs (Go Git Service) Description=Gogs (Go Git Service)
Ligne 47: Ligne 47:
 WantedBy=null-user.target WantedBy=null-user.target
 </code> </code>
 +
 +Ensuite, un petit ''systemctl <service> enable'' et le tour est joué
 +
 +===== Executer en tant qu'user =====
 +
 +Ce qu'on a vu jusqu'à présent est à executer en root ou via sudo, pour gérer le système dans sa totalité.
 +
 +Mais si on souhaite pouvoir démarrer un service au niveau USER, par exemple au démarrage de la session, alors il faut s'intéresser au côté USER de systemd.
 +
 +Les fichiers de conf (service, timer...) sont dans ''~.config/systemd/user/'', exemple pour démarrer un service on crée le fichier ''nextcloud-sync.service'' :
 +
 +<code ini>
 +[Unit]
 +Description=Nextcloud Sync
 +
 +[Service]
 +Type=simple
 +ExecStart=COMMANDE AVEC ARGUMENTS
 +TimeoutStartSec=300
 +Slice=nextcloud-sync.slice  (facultatif, appelle un slice pour contrôler les ressources affectées)
 +
 +[Install]
 +WantedBy=default.target
 +</code>
 +
 +Ensuite, on pilote systemd en mode utiliseateur avec le flag ''--user'' : ''systemctl --user enable nextcloud-sync.service'', ''start'', ''stop'', etc.
 +
 +===== Les timers =====
 +
 +[[https://www.mauromorales.com/2024/11/08/how-to-sync-a-headless-server-with-your-nextcloud-files/|source]]
 +
 +Pour remplacer les crontab, et executer des scripts à intervalle régulier.
 +
 +On crée le fichier ''nextcloud-sync.timer'' qu'on met dans ''/etc/systemd/system'' ou dans ''~.config/systemd/user/'' selon que le timer soit à contrôler par un user ou par root.
 +
 +<code ini>
 +[Unit]
 +Description=Run Nextcloud Sync every 5 minutes
 +Requires=nextcloud-sync.service
 +
 +[Timer]
 +Unit=nextcloud-sync.service
 +OnUnitInactiveSec=5m
 +RandomizedDelaySec=5m
 +AccuracySec=1s
 +
 +[Install]
 +WantedBy=timers.target
 +</code>
 +
 +et on démarre le timer avec ''systemctl --user enable nextcloud-sync.timer'' puis ''systemctl --user start nextcloud-sync.timer''
 +
 +
 +===== Les slices =====
 +
 +[[https://www.mauromorales.com/2024/11/08/how-to-sync-a-headless-server-with-your-nextcloud-files/|source]]
 +
 +Les slices servent à limiter la conso CPU et mémoire. Il faut créer un fichier config à la syntaxe de systemd, et les faire appeler par un service.
 +
 +Par exemple faisons un slice pour le service nextcloud-sync.service défini dans le paragraphe "Executer en tant qu'user". On crée le fichier ''nextcloud-sync.slice'' qu'on place dans ''~/.config/systemd/user/'' :
 +
 +<code ini>
 +[Unit]
 +Description=Nextcloud Sync Slice
 +DefaultDependencies=no
 +Before=slices.target
 +
 +[Slice]
 +CPUQuota=30%
 +MemoryMax=2G
 +</code>
 +
 +Ne pas oublier d'y faire mention dans le fichier nextcloud-sync.service !
  
systemd.1539462764.txt.gz · Dernière modification : 2018/10/13 20:32 de 127.0.0.1