ubuntuusers.de

Cronjob richtig nutzen

Status: Ungelöst | Ubuntu-Version: Kubuntu 24.10 (Oracular Oriole)
Antworten |

schwarzheit Team-Icon

Supporter
Avatar von schwarzheit

Anmeldungsdatum:
31. Dezember 2007

Beiträge: 4126

Du musst das An- und Auschalten voneinander trennen.

Die Service- und Timerunits oben sind NUR das Anschalten. Zum ausschalten kannst du immernoch n Cronjob nutzen. Den du immernoch nicht hergezeigt hast.

Also wenns um 19.00 Uhr an gehen soll ersetzt du in den Scripten oben die 07 mit 19.

kB Team-Icon

Supporter, Wikiteam
Avatar von kB

Anmeldungsdatum:
4. Oktober 2007

Beiträge: 9622

Wohnort: Münster

schwarzheit schrieb:

[…] Das Prob wirst du mit nem Cronjob nicht lösen können. Dazu braucht es systemd Timer- und Serviceunit.

Einen ausgeschalteten Rechner automatisch zu einer vorbestimmten Zeit einzuschalten, gelingt weder mit Cron noch mit systemd. Grund: Diese Programme müssen laufen, um überhaupt irgend etwas tun zu können und bei ausgeschaltetem Rechner laufen sie nun einmal nicht.

Sofern der Rechner mit Energie versorgt wird (also über Akku verfügt oder bei angeschlossener Netzstromversorgung), gelingt aber das Einschalten über den Wecker in der Firmware des Rechners, Details siehe rtcwake.

Ausschalten kann man dagegen sowohl über Cron wie auch über systemd.

lubux

Anmeldungsdatum:
21. November 2012

Beiträge: 14313

schwarzheit schrieb:

Die Service- und Timerunits oben sind NUR das Anschalten. Zum ausschalten kannst du immernoch n Cronjob nutzen. ...

BTW: In einer service-unit kann man mit systemd-run, auch eine transiente/vorübergehende/temporäre timer-unit unterbringen, die dann die service-unit (oder auch was anderes) stoppt. Diese temporäre timer-unit wird dann auch noch gestoppt (bei/mit ExecStop). Z. B.:

ExecStartPost=/usr/bin/systemd-run --user -u stopbotamux --on-calendar='23:58:50 Europe/Berlin' -q \
--send-sighup /usr/bin/bash -c "/usr/bin/systemctl --user -q --no-wall stop botamux.service"
ExecStop=/usr/bin/systemctl --user -q --no-wall stop stopbotamux.timer

Helge63

(Themenstarter)

Anmeldungsdatum:
16. September 2024

Beiträge: 6

@schwarzheit das ist der Cronjob mit dem ich das im Moment mache.

3023 * /usr/sbin/rtcwake -m off -s 70200

Ich hoffe ich verstehe das jetzt richtig, ich setzte in dem Script die Zeiten auf 19:00 Uhr, damit wacht der PC um 19:00 Uhr auf und ich lasse den Cronjob weiterhin so laufen wie bisher, damit schläft der PC um 23:30 Uhr wieder ein. Der Cronjob läuft auch dann wenn ich den PC zwischendurch Wecke ? Ich denke das genau geht nicht, oder verstehe ich das jetzt Falsch ?

Antworten |