J'ai buté sur le même problème : on peut démarrer un service avec un timer, mais peut-on arrêter un service avec un timer ? Il semblerait que non.
Je m'en suis sorti en créant un second timer, qui lançait un service incompatible avec le premier service.
Création d'un timer pour lancer le service steam-cmd.service :
$ cat /etc/systemd/system/steam-cmd.timer
[Unit]Description=Timer pour lancer steam-cmd.service[Timer]OnCalendar=*-*-* 20:00:00AccuracySec=1s[Install]WantedBy=multi-user.target
Ce timer lancera steam-cmd.service à 20h.
Création du service stop-steam-cmd.service, incompatible avec steam-cmd.service :
$ cat /etc/systemd/system/stop-steam-cmd.service
[Unit]Conflicts=steam-cmd.serviceDescription=stop-steam-cmd.service est en conflit avec steam-cmd.service[Service]ExecStart=/usr/bin/echo "Activation de stop-steam-cmd.service"Type=oneshot
Le lancement de stop-steam-cmd.service va arrêter (« Conflicts ») steam-cmd.service.
Création d'un timer pour lancer le service stop-steam-cmd.service :
$ cat /etc/systemd/system/stop-steam-cmd.timer
[Unit]Description=Timer pour lancer le service stop-team-cmd.service[Timer]OnCalendar=*-*-* 02:00:00AccuracySec=1s[Install]WantedBy=multi-user.target
Ce timer lancera stop-steam-cmd.service à 2h.
On valide nos modifications :
$ systemctl daemon-reload
Il ne reste qu'à lancer nos deux timers :
$ systemctl start steam-cmd.timer stop-steam-cmd.timer
et à automatiser leur lancement au démarrage de l'ordinateur :
$ systemctl enable steam-cmd.timer stop-steam-cmd.timer
Ça fait beaucoup de choses pour automatiser le lancement et l'extinction d'un service :-) Pour cet exemple, cron est peut-être plus pertinent que les timers de systemd !
[^] # Re: systemd / timers
Posté par Sylvain Blandel . En réponse au message Lancer un service systemd par période avec cron. Évalué à 1.
J'ai buté sur le même problème : on peut démarrer un service avec un timer, mais peut-on arrêter un service avec un timer ? Il semblerait que non.
Je m'en suis sorti en créant un second timer, qui lançait un service incompatible avec le premier service.
Création d'un timer pour lancer le service
steam-cmd.service:$ cat /etc/systemd/system/steam-cmd.timer
Ce timer lancera
steam-cmd.serviceà 20h.Création du service
stop-steam-cmd.service, incompatible avecsteam-cmd.service:$ cat /etc/systemd/system/stop-steam-cmd.service
Le lancement de
stop-steam-cmd.serviceva arrêter (« Conflicts »)steam-cmd.service.Création d'un timer pour lancer le service
stop-steam-cmd.service:$ cat /etc/systemd/system/stop-steam-cmd.timer
Ce timer lancera
stop-steam-cmd.serviceà 2h.On valide nos modifications :
$ systemctl daemon-reload
Il ne reste qu'à lancer nos deux timers :
$ systemctl start steam-cmd.timer stop-steam-cmd.timer
et à automatiser leur lancement au démarrage de l'ordinateur :
$ systemctl enable steam-cmd.timer stop-steam-cmd.timer
Ça fait beaucoup de choses pour automatiser le lancement et l'extinction d'un service :-) Pour cet exemple,
cronest peut-être plus pertinent que les timers de systemd !