Ich möchte alle 30 Minuten nach dem Booten des Systems ein Skript ausführen. Ich weiß, dass Sie cron verwenden können, aber ich habe nicht vor, diese Funktion oft zu verwenden, daher würde ich es gerne mit systemd versuchen.
Bisher habe ich nur die monotonen Timer gefunden, die es erlauben, etwas einmal auszuführen (glaube ich zumindest). Wie würde der foo.timer
und [email protected]
wie sieht es aus, wenn ich alle 30 Minuten nach dem Booten/Systemstart etwas ausführen möchte?
[E-Mail geschützt]
[Unit]
Description=run foo
Wants=foo.timer
[Service]
User=%I
Type=simple
ExecStart=/bin/bash /home/user/script.sh
foo.timer
[Unit]
Description=run foo
[Timer]
where I am stuck... ???
Akzeptierte Antwort:
Sie müssen zwei Dateien erstellen:eine für den Dienst, die andere für den Timer mit demselben Namen.
Beispiel:
/etc/systemd/system/test.service
[Unit]
Description=test job
[Service]
Type=oneshot
ExecStart=/bin/bash /tmp/1.sh
/etc/systemd/system/test.timer
[Unit]
Description=test
[Timer]
OnUnitActiveSec=10s
OnBootSec=10s
[Install]
WantedBy=timers.target
Laden Sie danach das Systemd mit dem Befehl systemctl daemon-reload
neu und starten Sie Ihren Timer mit systemctl start test.timer
, oder aktivieren Sie es standardmäßig (systemctl enable test.timer
).
Testinhalt von 1.sh
#!/bin/bash
echo `date` >> /tmp/2
Und Befehl zum Überprüfen aller verfügbaren Timer:systemctl list-timers --all
Ausführlichere Informationen auf der Projektseite und Beispiele auf der ArchLinux-Seite