3.5k Aufrufe
Gefragt in Linux von
Hallo Freunde,

wie oben beschrieben funktioniert der automatisierte shutdown unter Raspbian
nicht. In die crontab habe ich folgendes geschrieben:


40 19 * * * pi sudo /sbin/shutdown -r now


Habe das sowohl mit als auch ohne sudo erfolglos probiert.

Unter visudo steht folgendes:


...
Default timestamp_timeout=0
...
pi ALL=(ALL) ALL


Hat jemand eine Idee, was ich falsch gemacht habe?

24 Antworten

0 Punkte
Beantwortet von
Au ja, ich stelle fest, dass du wirklich eine Lösung suchst;-
D


Fein
0 Punkte
Beantwortet von
Meinst du so?

Cmnd_Alias SHUTDOWN='sudo /sbin/shutdown -r now'

Nein, leider nicht. Ich meinte das so: pi ALL=(ALL) NOPASSWD: ALL

Ich würde aber nicht unbedingt an sudo rumbasteln. Probiere lieber die oben genannten Methoden.

Also die Aufgaben müssen in der Zukunft liegen. Wenn der Rechner um 19:40 heruntergefahren werden soll, dann müssen die Einstellungen in der Crontab (wenn sie denn funktionieren) am besten schon 19:00 Uhr vorgenommen werden. Dann Cron neustarten. Dann einfach warten (40min).
0 Punkte
Beantwortet von
Ich habe jetzt folgendes probiert:

unter visudo habe ich jetzt


Defaults timestamp_timeout=0

pi ALL=(ALL) NOPASSWD:/sbin/shutdown


eingetragen. Dann habe ich in die crontab


00 20 * * * pi /sbin/shutdown -r now


eingesetzt und cron neu gestartet. Leider erfolglos. Dass ich den
Raspberry ja über die SSH anspreche, dürfte ja nicht das Problem sein.
0 Punkte
Beantwortet von
Das mit dem Neustart von cron geschah 20 Minuten vorher ;)
0 Punkte
Beantwortet von
Ok. Du musst Dich nochmal konzentrieren, sonst Verwecheselungsgefahr:

Für mein Verständnis ist die richtige Antwort @1. Liese sie nochmal. Um die root-crontab zu bearbeiten musst Du auch mit sudo arbeiten:

[list]sudo crontab -e[/list]
Dort trägst Du das hier hein:
40 19 * * * /sbin/shutdown -r now
(Uhrzeit anpassen). Beachte auch, das die /etc/crontab distributionseigen ist. Bei mir gibt es sie nicht (slackware). Verlasse Dich also auf den Befehl crontab -e und schaue dort auf die schon vorhandenen Einträge, ob da der Benutzer mit eingetragen werden muss. Wenn ja, dann:
40 19 * * * root /sbin/shutdown -r now

oder
40 19 * * * pi /sbin/shutdown -r now
Aufpassen! In diesem Beipiel muss pi in der /etc/sudoers auf NOPASSWD gesetzt sein. Ich hatte aber den Tip gegeben, nicht mit sudo zu arbeiten und auch keine Benutzer-crontabs zu erstellen.

#########################################################

Hier noch ein anderer Weg. Ich stelle damit täglich meine Uhrzeit und das klappt. Schaue Dir nochmals die crontab an, mit

sudo crontab -l

Dort siehst Du dann auch welche scripts aufgerufen werden: [list]# Run daily cron jobs at 4:40 every day:
40 18 * * * /usr/bin/run-parts /etc/cron.daily 1> /dev/null
[/list] Und in diesen "daily" packst Du den Befehl (alles unter root oder sudo). Erstelle also in /etc/cron.daily eine textdatei, mache sie ausführbar und schreibe dort ganz pur rein:
#!/bin/sh
shutdown -h now
0 Punkte
Beantwortet von
oder

40 19 * * * pi /sbin/shutdown -r now

Aufpassen! In diesem Beipiel muss pi in




40 19 * * * pi sudo /sbin/shutdown -r now
0 Punkte
Beantwortet von
Also ich weiß echt nicht wo mein Fehler liegt, aber erstmal zu deiner Anmerkung mit
sudo crontab -e:

Ich bin bislang (aus welchen Gründen auch immer) davon ausgegangen, dass er
bei Eingabe von crontab -e bereits als superuser startet (was bei näherer
Betrachtung nicht sein kann, denn dann müsste er auch nano als superuser starten,
sofern nicht explizit in die sudoer eingetragen),

Ich habe also sudo crontab -e ausgeführt und folgende Variationen eingetragen
(und sudo service cron restart ausgeführt):

1. Variante:


0 22 * * * * root /sbin/shutdown -r now


funktioniert nicht.

2. Variante (über sudo visudo pi auf pi ALL=(ALL) NOPASSWD: /sbin/shutdown
gesetzt):


4 22 * * * * pi /sbin/shutdown -r now


funktioniert nicht.

3. Variante (über sudo visudo pi auf pi ALL=(ALL) NOPASSWD: ALL gesetzt):


8 22 * * * * pi /sbin/shutdown -r now


funktioniert nicht.

Sofern ich allerdings NOPASSWD: ALL setze, ist der Ansatz, den ich verfolge,
dahin (Jede Aktion mit erweiterten Rechten erfordert eine Passworteingabe). Sei's
drum.

Ich hoffe, dass ich nicht wieder etwas überlesen habe, aber darauf kannst du mich
ja dann hinweisen :).

Liebe Grüße
0 Punkte
Beantwortet von ennok Experte (1.2k Punkte)
Wenn du das über sudo crontab -e machst, musst du den Benutzernamen weglassen:

0 22 * * * * /sbin/shutdown -r now


oder aber in der /etc/crontab

0 22 * * * * root /sbin/shutdown -r now


benutzen.
0 Punkte
Beantwortet von
Vom Anfang an fehlt hier der Anfang.
Hast du gedacht, dass ich dich mit meiner Antwort 4 irgendwie auf die Schippe nehmen wollte?
Falls nein, dann warum keine Antwort dazu, denn so wie es jetzt ist, kämpfst du auf zwei oder gar drei Fronten?
Absehen davon, man kann es (das nicht antworten) schon als "Egal, Hauptsache mein Ding geht hier weiter" auslegen.

Fürs Testen würde ich erst mal anstatt /sbin/shutdown -r now
$ sudo /sbin/shutdown -c && echo "Ich starte jetzt neu"
"-c Cancel a pending shutdown"
Es geht um die nötigen Rechte um den "shutdown" ausführen zu lassen, die Option ist hier egal, darum auch das mit "&& echo..."

Dies also vom Terminal aus ausführen lassen.
Geht es mit der Passwortaufforderung [sudo] Passwort für pi:, dann halt mit der /etc/sudoers herumprobieren, bis nachher kein Passwort nötig ist.

Nachher das mit dem "crontab" weitermachen.

Um was automatisch abfahren zu lassen, muss es erst mal "im Handbetrieb" funktionieren.
Und das ist hier das Problem, man weißt es nicht.
Du möglicherweise auch nicht.
0 Punkte
Beantwortet von
Wenn alles irgendawann funktioniert, dann setze NOPASSWD allein nur auf den Befehl shutdown.

Du als Benutzer pi kannst nur mit sudo herunterfahren. Und das nur in Deiner pi-crontab. Das steht in Antwort 16 für die /etc/crontab.

Alle crontabs (auch die von root) stehen aber iin /var/spool/cron/crontabs. In den dortigen crontabs wird der Benutzername weggelassen.

Die root-crontab muss mit sudo editiert werden. Es wird dort aber weder ein Name, noch ein sudo eingetragen.

Variante2:
Die pi-crontab wird normal editiert. Auch hier wird kein Name eingetragen. Aber Systembefehle müssen als sudo eingeschrieben werden.
...