Ich habe diesen Cronjob eingestellt:
* * * * * /usr/bin/systemctl suspend
Und es funktioniert nicht. Aber ich kann es in einer Shell ausführen und es funktioniert. Ich verstehe nicht, was nicht funktionieren könnte.
EDIT
Umleitung der Fehlerausgabe zu /tmp/error:
Failed to issue method call: Access denied
Failed to issue method call: Access denied
Meine Frage lautet dann: Werden Cronjobs beispielsweise als Spezialbenutzer ausgeführt cron, was erklären würde, dass mein Benutzer den Befehl ausführen kann, aber nicht cronselbst?
Zusätzliche Erklärung:
Dies ist ein minimales Beispiel für ein Problem in einem Skript (das sinnvoller ist als der hier angegebene einzelne Befehl).
systemctlist ein Teil vonsystemd. Ich denke Neustart, Herunterfahren, Suspendieren arbeiten mit einem Nicht-Root-Benutzer mitsystemd. Wie auch immer, es funktioniert auf meinem System.Schließlich verwende ich Arch Linux und
/bin,/usr/sbin,/sbinsind alle Symlinks/usr/bin.
systemctlist in /usr/binund akzeptiert suspendwie das? Was * nix benutzt du?
systemctl suspendfunktioniert nicht in Debian- oder RedHat-Distributionen) und erklärt auch, dass Sie nicht wirklich das tun möchten, was Sie anzeigen :). Versuchen 2> /tmp/errorSie auch, Fehler hinzuzufügen oder zu erfassen, die möglicherweise auftreten. Sagen Sie uns abschließend, welcher Benutzer diese crontab ausführt.