[gelöst] cron führt systemctl suspend nicht aus
[gelöst] cron führt systemctl suspend nicht aus
Hallo zusammen,
seit dem Update auf Debian 11 wird der cronjob
55 23 * * * /usr/bin/systemctl suspend >> /tmp/00log 2>&1
nicht mehr ausgeführt.
Besser gesagt, der Aufruf wird zwar durchgeführt, aber das System geht nicht in den Ruhemodus.
Wenn ich das per Hand starte funktioniert es problemlos.
Hat jemand einen Idee?
Grüße eikko
seit dem Update auf Debian 11 wird der cronjob
55 23 * * * /usr/bin/systemctl suspend >> /tmp/00log 2>&1
nicht mehr ausgeführt.
Besser gesagt, der Aufruf wird zwar durchgeführt, aber das System geht nicht in den Ruhemodus.
Wenn ich das per Hand starte funktioniert es problemlos.
Hat jemand einen Idee?
Grüße eikko
Zuletzt geändert von JTH am 09.09.2021 10:52:46, insgesamt 1-mal geändert.
Grund: Als gelöst markiert
Grund: Als gelöst markiert
Re: cron führt systemctl suspend nicht aus
Keiner der das Problem schon mal hatte?
eikko
eikko
Re: cron führt systemctl suspend nicht aus
Ich würde es mal ohne Pfad probieren, also:
Code: Alles auswählen
55 23 * * * systemctl suspend >> /tmp/00log 2>&1
Re: cron führt systemctl suspend nicht aus
Dann hätte der TE aber in der log-Datei so einen ähnlichen Hinweis:Draal hat geschrieben:07.09.2021 12:06:25Ich würde es mal ohne Pfad probieren, also:Code: Alles auswählen
55 23 * * * systemctl suspend >> /tmp/00log 2>&1
Code: Alles auswählen
/usr/bin/systemctl: No such file or directory
@TE: Wie ist die Ausgabe von:
Code: Alles auswählen
which systemctl
Debian 12.9 mit LXDE, OpenBSD 7.6 mit i3wm, FreeBSD 14.1 mit Xfce
Re: cron führt systemctl suspend nicht aus
Ihr beiden dürftet auf dem richtigen Pfad sein. systemctl liegt in /bin, nicht in /usr/bin. Solange keineikko hat geschrieben:02.09.2021 17:31:4955 23 * * * /usr/bin/systemctl suspend >> /tmp/00log 2>&1
![Debian](/pics/debianpackage.png)
Manchmal bekannt als Just (another) Terminal Hacker.
Re: cron führt systemctl suspend nicht aus
... aber dann erst nach dem release-upgrade von Buster zu Bullseye? Denn der TE schreibt in seinem 1. Beitrag:JTH hat geschrieben:07.09.2021 12:16:57Ihr beiden dürftet auf dem richtigen Pfad sein. systemctl liegt in /bin, ...
seit dem Update auf Debian 11 wird der cronjob ...
Debian 12.9 mit LXDE, OpenBSD 7.6 mit i3wm, FreeBSD 14.1 mit Xfce
Re: cron führt systemctl suspend nicht aus
Jessie:
Code: Alles auswählen
which systemctl
/bin/systemctl
Code: Alles auswählen
which systemctl
/usr/bin/systemctl
ls -li /bin/systemctl
4195450 -rwxr-xr-x 1 root root 1058096 Jul 13 19:29 /bin/systemctl
ls -li /usr/bin/systemctl
4195450 -rwxr-xr-x 1 root root 1058096 Jul 13 19:29 /usr/bin/systemctl
Re: cron führt systemctl suspend nicht aus
Funktioniert das denn ohne Session? Wenn ich zb mit su von root zu nem User wechsle und dessen user-services (systemd --user ...) managen möchte, klappte das früher mal nicht. Die richtige Terminologie fehlt mir hier, "Session" ist also nur unscharf zu betrachten. Ich halte das aber für die naheliegendere Ursache als Probleme mit dem Pfad.
Jesus saves. Buddha does incremental backups.
Windows ist doof, Linux funktioniert nicht • Don't break debian! • Wie man widerspricht
Windows ist doof, Linux funktioniert nicht • Don't break debian! • Wie man widerspricht
Re: cron führt systemctl suspend nicht aus
Hallo,
erstmal Danke für alle die mitdenken!
Die Änderung auf "/bin/systemctl suspend >> /tmp/00log 2>&1" hat leider keine Änderung gebracht.
Das stand in den Log-Daten, falls das hilft:
07.09.21 23:55 CRON pam_unix(cron:session): session opened for user ich(uid=1000) by (uid=0)
07.09.21 23:55 CRON (ich) CMD (/bin/systemctl suspend >> /tmp/00log 2>&1)
07.09.21 23:55 CRON pam_unix(cron:session): session closed for user ich
Grüße eikko
erstmal Danke für alle die mitdenken!
Die Änderung auf "/bin/systemctl suspend >> /tmp/00log 2>&1" hat leider keine Änderung gebracht.
Das stand in den Log-Daten, falls das hilft:
07.09.21 23:55 CRON pam_unix(cron:session): session opened for user ich(uid=1000) by (uid=0)
07.09.21 23:55 CRON (ich) CMD (/bin/systemctl suspend >> /tmp/00log 2>&1)
07.09.21 23:55 CRON pam_unix(cron:session): session closed for user ich
Grüße eikko
Re: cron führt systemctl suspend nicht aus
Wie schon erwähnt, ohne Pfad funktioniert es, bei mir schon seit buster, über bullseye und auch in bookworm.
Code: Alles auswählen
# m h dom mon dow command
0 3 * * * systemctl restart systemd-timesyncd
5 3 * * * /sbin/hwclock -w
Re: cron führt systemctl suspend nicht aus
Daß du den Job unter deinem Benutzerkonto laufen läßt, hättest du auch von Anfang an sagen könneneikko hat geschrieben:08.09.2021 09:10:41Das stand in den Log-Daten, falls das hilft:Code: Alles auswählen
07.09.21 23:55 CRON pam_unix(cron:session): session opened for user ich(uid=1000) by (uid=0)
![Wink :wink:](./images/smilies/icon_wink.gif)
Für Dinge wie Suspend und Shutdown sind root-Rechte nötig. Wenn du Suspend als Benutzer von der Kommandozeile in der graphischen Umgebung startest, greifen die Regeln im Policy-Kit. Damit werden bestimmten Befehlen root-Rechte eingeräumt, auch wenn man selbst nicht root ist.
Unter cron wirkt das Policy-Kit nicht, daher wirst du schlicht keine Berechtigung haben, den Rechner zu suspendieren, wenn der cron-Job unter deinem Benutzerkonto läuft.
Hast du denn schonmal in die Datei /tmp/00log geschaut?
Re: cron führt systemctl suspend nicht aus
Ho MSfree,
ich hatte das schon mal als root laufen lassen, leider auch ohne Erfolg,
möglicherweise war da noch das "/usr/bin/systemctl" das Problem.
In /tmp/00log steht:
Hat jemand nen Tip wie ich das elegant lösen könnte?
eikko
ich hatte das schon mal als root laufen lassen, leider auch ohne Erfolg,
möglicherweise war da noch das "/usr/bin/systemctl" das Problem.
In /tmp/00log steht:
Also vermutlich doch ein Rechteproblem!Failed to suspend system via logind: Interactive authentication required.
Failed to start suspend.target: Interactive authentication required.
See system logs and 'systemctl status suspend.target' for details.
Hat jemand nen Tip wie ich das elegant lösen könnte?
eikko
Re: cron führt systemctl suspend nicht aus
Ja, das ist genau das, was MSfree im vorigen Beitrag beschrieben hat.
Entweder du probierst es als systemweiter Cronjob.
Oder du könntest es über einen systemd-Timer lösen (ungetestet): Folgendes in /etc/systemd/system/suspend-at-midnight.timer:
Code: Alles auswählen
[Unit]
Description=Suspend at midnight
[Timer]
AccuracySec=1s
OnCalendar=23:55
Unit=suspend.target
[Install]
WantedBy=timers.target
Code: Alles auswählen
systemctl enable --now suspend-at-midnight.timer
Manchmal bekannt als Just (another) Terminal Hacker.
Re: cron führt systemctl suspend nicht aus
Hast das auf Buster (d. h. vor dem release-upgrade), aus der user-crontab funktioniert?eikko hat geschrieben:08.09.2021 09:10:4107.09.21 23:55 CRON pam_unix(cron:session): session opened for user ich(uid=1000) by (uid=0)
Debian 12.9 mit LXDE, OpenBSD 7.6 mit i3wm, FreeBSD 14.1 mit Xfce
Re: cron führt systemctl suspend nicht aus
Ja, das lief jetzt jahrelang ohne Probleme,Hast das auf Buster (d. h. vor dem release-upgrade), aus der user-crontab funktioniert?
erst seit dem Upgrade nicht mehr
Grüße eikko
Re: cron führt systemctl suspend nicht aus
Du hast in deinem 1. Beitrag auch geschrieben:eikko hat geschrieben:08.09.2021 13:05:06Ja, das lief jetzt jahrelang ohne Probleme,
erst seit dem Upgrade nicht mehr
Hast Du es "per Hand", als root oder als user gestartet, so dass es problemlos funktioniert hat?Wenn ich das per Hand starte funktioniert es problemlos.
Debian 12.9 mit LXDE, OpenBSD 7.6 mit i3wm, FreeBSD 14.1 mit Xfce
Re: cron führt systemctl suspend nicht aus
Ob root oder normaler Benutzer ist dann normalerweise egal. (Inter-) aktiv von einem Benutzer ausgeführt (also im eigenen Terminal oder über die Wege des Desktops) darf einen Suspend auch ein normaler Benutzer auslösen. Das ist per PolicyKit so festgelegt (in /usr/share/polkit-1/actions/org.freedesktop.login1.policy im Abschnitt zu org.freedesktop.login1.suspend).mat6937 hat geschrieben:08.09.2021 19:44:27Hast Du es "per Hand", als root oder als user gestartet, so dass es problemlos funktioniert hat?
Manchmal bekannt als Just (another) Terminal Hacker.
Re: cron führt systemctl suspend nicht aus
"normalerweise", ... aber es gibt auch Ausnahmen. Hier z. B., nach einem release-upgrade sind root-Rechte erforderlich:JTH hat geschrieben:08.09.2021 19:51:54Ob root oder normaler Benutzer ist dann normalerweise egal. (Inter-) aktiv von einem Benutzer ausgeführt (also im eigenen Terminal ...
Code: Alles auswählen
:~$ shutdown -r now
shutdown: Administratorrechte (»root«-Rechte) benötigt
Debian 12.9 mit LXDE, OpenBSD 7.6 mit i3wm, FreeBSD 14.1 mit Xfce
Re: cron führt systemctl suspend nicht aus
Zum Lernen und aus Interesse, wo die Meldung herkommt: Ist das denn ein System mit installiertem PolicyKit – und systemd? Bei letzterem hätte ich zumindest eine andere Rückmeldung erwartet.mat6937 hat geschrieben:08.09.2021 20:03:52Code: Alles auswählen
:~$ shutdown -r now shutdown: Administratorrechte (»root«-Rechte) benötigt
Manchmal bekannt als Just (another) Terminal Hacker.
Re: cron führt systemctl suspend nicht aus
PolicyKit ja und systemd nein. Es ist ein Beispiel und es taugt nicht zum lernen. Es geht mir nur um Informationen, die zur Verfügung gestellt werden sollten.JTH hat geschrieben:08.09.2021 22:06:00Zum Lernen und aus Interesse, wo die Meldung herkommt: Ist das denn ein System mit installiertem PolicyKit – und systemd?
Debian 12.9 mit LXDE, OpenBSD 7.6 mit i3wm, FreeBSD 14.1 mit Xfce
Re: cron führt systemctl suspend nicht aus
So, Rückmeldung!
Es läuft,
hab den Cronjob inzwischen als root und mit "/bin/systemctl" angelegt
und es wird jetz ausgeführt.
Vielen Dank an alle die mitgedacht haben!
Grüße eikko
Es läuft,
hab den Cronjob inzwischen als root und mit "/bin/systemctl" angelegt
und es wird jetz ausgeführt.
Vielen Dank an alle die mitgedacht haben!
Grüße eikko
Re: cron führt systemctl suspend nicht aus
Warum nicht: Du hast mich daran erinnert, dass es ja weiterhin Systeme ohne systemd gibt und sich manches dort natürlich anders verhält. Man verliert ja bei manchen Antworten aus den Augen, dass es auch andere als "Standardsetups" gibt. (Auch wenns hier dem Titel nach explizit um eins mit systemd geht.)mat6937 hat geschrieben:08.09.2021 22:27:57PolicyKit ja und systemd nein. Es ist ein Beispiel und es taugt nicht zum lernen.
Manchmal bekannt als Just (another) Terminal Hacker.