Page 1 sur 1

[systemd] Quelques unit utiles...

Publié : jeu. 30 oct. 2014, 10:53
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à !

Re: [systemd] Quelques unit utiles...

Publié : mar. 28 avr. 2015, 08:06
par Moviuro
Allez, j'ai tout mis sur github, pour faciliter l'accès : https://github.com/moviuro/etc-systemd

++

Re: [systemd] Quelques unit utiles...

Publié : mar. 28 avr. 2015, 08:45
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

Re: [systemd] Quelques unit utiles...

Publié : mar. 28 avr. 2015, 20:41
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
?...

Re: [systemd] Quelques unit utiles...

Publié : mar. 28 avr. 2015, 22:28
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

Re: [systemd] Quelques unit utiles...

Publié : mar. 28 avr. 2015, 23:01
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".