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 [2025/01/05 20:18] lucsystemd [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 49: Ligne 49:
  
 Ensuite, un petit ''systemctl <service> enable'' et le tour est joué 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 ===== ===== 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. 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''
  
  
Ligne 61: Ligne 104:
 [[https://www.mauromorales.com/2024/11/08/how-to-sync-a-headless-server-with-your-nextcloud-files/|source]] [[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.+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.1736108338.txt.gz · Dernière modification : 2025/01/05 20:18 de luc