[systemd] Quelques unit utiles...

Autres projets et contributions
Moviuro
Elfe
Messages : 765
Inscription : dim. 17 juin 2012, 22:49

[systemd] Quelques unit utiles...

Message par Moviuro »

Plop,

J'adore systemd, alors je l'utilise pour faire pas mal de trucs et après m'être arraché pas mal de cheveux sur certaines units, je vous les mets ici pour que ça ne se perde pas (trop vite).

Code : Tout sélectionner

reachable-retry@.service
[Unit]
Description=Test if %i is reachable
 
[Service]
Type=forking
ExecStart=/usr/bin/ping -c1 %i
Restart=on-failure
RestartSec=2
À mettre par exemple dans l'unit de reflector :

Code : Tout sélectionner

/etc/systemd/system/reflector.service
[Unit]
Description=Update mirorlist
Requires=reachable-retry@www.archlinux.org.service
After=reachable-retry@www.archlinux.org.service

[Service]
Nice=19
IOSchedulingClass=2
IOSchedulingPriority=7
Restart=on-failure
RestartSec=1h
ExecStart=/usr/bin/reflector -i (fr|nl|be). -f 5 --verbose --save /etc/pacman.d/mirrorlist
Ensuite, il y a les timer que j'ai rédigé et ils sont plus élégants qu'avec l'ancien contenu du wiki (avec les .target.wants) : https://wiki.archlinux.org/index.php/Ta ... fied_timer

Code : Tout sélectionner

/etc/systemd/system/timer-daily@.timer
[Unit]
Description=Daily Timer for %i service

[Timer]
OnCalendar=daily
AccuracySec=6h
Persistent=true
Unit=%i.service

[Install]
WantedBy=multi-user.target
Et le top du top : on peut ajouter plusieurs @ dans le nom d'une unit à déclencher :

Code : Tout sélectionner

systemd --user enable timer-daily@unison@Documents.timer
Le timer va donc déclencher unison@Documents.service tous les jours.

Voilà !
psycho : Latitude E6430 ; BTRFS over LUKS, UEFI & secureboot
schizo : Acer 8942G ; KDE 4, BTRFS over LUKS ; W7 (prend la poussière)
toxo : i5-6600K, bspwm, VM W10 en PCI-passthrough
deadman : Lenovo Thinkcenter, OpenBSD 6.0-stable
popho.be : Kimsufi KS-3, FreeBSD 11.0
Loi de Murphy : Le jour où tu as besoin d'une backup, tu te dis que tu aurais dû en mettre en place
Venez sur IRC en plus du forum !
Moviuro
Elfe
Messages : 765
Inscription : dim. 17 juin 2012, 22:49

Re: [systemd] Quelques unit utiles...

Message par Moviuro »

Allez, j'ai tout mis sur github, pour faciliter l'accès : https://github.com/moviuro/etc-systemd

++
psycho : Latitude E6430 ; BTRFS over LUKS, UEFI & secureboot
schizo : Acer 8942G ; KDE 4, BTRFS over LUKS ; W7 (prend la poussière)
toxo : i5-6600K, bspwm, VM W10 en PCI-passthrough
deadman : Lenovo Thinkcenter, OpenBSD 6.0-stable
popho.be : Kimsufi KS-3, FreeBSD 11.0
Loi de Murphy : Le jour où tu as besoin d'une backup, tu te dis que tu aurais dû en mettre en place
Venez sur IRC en plus du forum !
Avatar de l’utilisateur
papajoke
Elfe
Messages : 773
Inscription : sam. 30 août 2014, 19:54

Re: [systemd] Quelques unit utiles...

Message par papajoke »

une question : ne pourrait-on pas passer 2 paramètres au même service timer :
supertimer@daily@flushcache
supertimer@weekly-cleardatas

Code : Tout sélectionner

#supertimer@.timer
[Unit]
#EnvironmentFile existe mais créer un fichier n'est pas souple
Description=$1 Timer for $2 service

[Timer]
OnCalendar=$1
AccuracySec=6h
Persistent=true
Unit=$2.service

[Install]
WantedBy=multi-user.target
Arch stable - Kde 5 / zsh - btrfs/mbr - Intel Core i3 - 6Go RAM - GeForce 405 video-nouveau
Moviuro
Elfe
Messages : 765
Inscription : dim. 17 juin 2012, 22:49

Re: [systemd] Quelques unit utiles...

Message par Moviuro »

papajoke a écrit :une question : ne pourrait-on pas passer 2 paramètres au même service timer :
supertimer@daily@flushcache
supertimer@weekly-cleardatas
En fait, il n'y a qu'un seul paramètre, là : daily@flushcache ou weekly@cleardatas Et je vois mal comment l'utiliser... :/

Peut-être avec du :

Code : Tout sélectionner

machin=%i.timer --> daily@flushcache.timer
?...
psycho : Latitude E6430 ; BTRFS over LUKS, UEFI & secureboot
schizo : Acer 8942G ; KDE 4, BTRFS over LUKS ; W7 (prend la poussière)
toxo : i5-6600K, bspwm, VM W10 en PCI-passthrough
deadman : Lenovo Thinkcenter, OpenBSD 6.0-stable
popho.be : Kimsufi KS-3, FreeBSD 11.0
Loi de Murphy : Le jour où tu as besoin d'une backup, tu te dis que tu aurais dû en mettre en place
Venez sur IRC en plus du forum !
Avatar de l’utilisateur
papajoke
Elfe
Messages : 773
Inscription : sam. 30 août 2014, 19:54

Re: [systemd] Quelques unit utiles...

Message par papajoke »

désolé j'ai recopié ton code mais je pensais surtout a administrer très facilement le temps en ligne de commande
a partir du boot(ou d'une heure) ! et la je ne peux créer 4..5 timers génériques

Code : Tout sélectionner

[Timer]
OnBootSec=6min
pouvoir faire quelque chose du type :

Code : Tout sélectionner

systemctl enable untimeurgenerique@6 ??? sauvegardeA.timer
systemctl enable untimeurgenerique@9 ??? sauvegardeB.timer
a la place d'un

Code : Tout sélectionner

systemctl enable sauvegardeA@6.timer
ou mon untimeurgenerique.timer serait capable de récupérer 2 paramètres ou découper le paramètre en 2
Arch stable - Kde 5 / zsh - btrfs/mbr - Intel Core i3 - 6Go RAM - GeForce 405 video-nouveau
Moviuro
Elfe
Messages : 765
Inscription : dim. 17 juin 2012, 22:49

Re: [systemd] Quelques unit utiles...

Message par Moviuro »

papajoke a écrit :ou mon untimeurgenerique.timer serait capable de récupérer 2 paramètres ou découper le paramètre en 2
J'ai demandé aux devs de systemd et clairement, ce n'est pas un comportement voulu.

Code : Tout sélectionner

mon-timer-de-la-mort@.target
[Unit]
Description=Un timer qui lance %i
Requires=%i.timer

Code : Tout sélectionner

systemctl --user start mon-timer-de-la-mort@daily@mon-service-journalier.target
Mais je vois pas trop l'intérêt de la chose.

Pour bien gérer les différents OnBootSec, tu ne pourras pas échapper aux fichiers .conf d'"override".
psycho : Latitude E6430 ; BTRFS over LUKS, UEFI & secureboot
schizo : Acer 8942G ; KDE 4, BTRFS over LUKS ; W7 (prend la poussière)
toxo : i5-6600K, bspwm, VM W10 en PCI-passthrough
deadman : Lenovo Thinkcenter, OpenBSD 6.0-stable
popho.be : Kimsufi KS-3, FreeBSD 11.0
Loi de Murphy : Le jour où tu as besoin d'une backup, tu te dis que tu aurais dû en mettre en place
Venez sur IRC en plus du forum !
Répondre