Ich möchte einen bestimmten systemd
Service zu bestimmten Zeiten starten und stoppen. Im Detail geht es um meinen BOINC-Client. Dieser soll von Montag bis Freitag um 17:00 Uhr gestartet, und (ebenfalls von Montag bis Freitag) um 8:00 Uhr morgens gestoppt werden.
Der BOINC-Client bringt bereits seine eigene boinc-client.service
-Datei mit, so dass der Dienst mittels systemctl start boinc-client.service
und systemctl stop boinc-client.service
gestartet und gestoppt werden kann.
Mittels systemd
sollen diese Befehle zu den genannten Zeiten ausgeführt werden.
Wrapper-Services
Ich erstelle mir zwei Hilfs-Services, die jeweils den BOINC-Client starten und stoppen.
FÜr den Starter-Service:
sudo nano /etc/systemd/system/start-boinc.service
[Unit]
Description=Start boinc service
After=network.target
[Service]
Type=oneshot
ExecStart=/usr/bin/systemctl start boinc-client.service
[Install]
WantedBy=multi-user.target
Für den Stopper-Service:
sudo nano /etc/systemd/system/stop-boinc.service
[Unit]
Description=Stop boinc service
After=network.target
[Service]
Type=oneshot
ExecStart=/usr/bin/systemctl stop boinc-client.service
[Install]
WantedBy=multi-user.target
Timer
Jetzt brauche ich nur noch zwei Timer, die jeweils die Wrapper-Services auslösen.
Für den Starter:
sudo nano /etc/systemd/system/start-boinc.timer
[Unit]
Description=Timer for starting BOINC client
[Timer]
OnCalendar=Mon-Fri *-*-* 17:00:00
[Install]
WantedBy=timers.target
Für den Stopper:
sudo nano /etc/systemd/system/stop-boinc.timer
[Unit]
Description=Timer for stopping BOINC client
[Timer]
OnCalendar=Mon-Fri *-*-* 08:00:00
[Install]
WantedBy=timers.target
Timer aktivieren
Jetzt müssen die neuen Dateien systemd bekannt gemacht werden:
sudo systemctl daemon-reload
Anschließend werden die Timer aktiviert.
sudo systemctl enable --now start-boinc.timer
sudo systemctl enable --now stop-boinc.timer
Wir können noch überprüfen, ob alles bereit ist.
sudo systemctl status start-boinc.timer
sudo systemctl status stop-boinc.timer
Fertig. Mein boinc-client.service
wird nun von Montag bis Freitag jeweils um 17:00 Uhr gestartet und um 8:00 Uhr gestoppt.
Weblinks
- https://documentation.suse.com/smart/systems-management/html/systemd-working-with-timers/index.html
- https://boinc.bakerlab.org/