Wie kann ich einen nächtlichen Neustart planen?

81

Ich habe einige regelmäßige Probleme beim Ausführen einer bestimmten Anwendung, XBMC. Wenn ich XBMC regelmäßig verwende, scheint es keine Probleme zu geben, aber wenn ich es länger als 12 Stunden unbeaufsichtigt lasse, muss ich neu starten, damit es wieder funktioniert.

Ich weiß, dass ein geplanter Neustart NICHT die Antwort ist, aber bis ich das Problem herausgefunden habe, muss ich jeden Morgen einen Neustart planen, damit meine Frau ihn verwenden kann, wenn ich nicht da bin und er nicht aus dem Fenster geworfen wird :)

Irgendwelche Abnehmer?

Braiam
quelle

Antworten:

133

Ich würde Cron verwenden (sollte bereits installiert sein):

Edit crontab:

sudo crontab -e

Beim ersten Mal müssen Sie möglicherweise Ihren bevorzugten Editor auswählen (z. B. nano).

Fügen Sie eine Zeile wie folgt ein

0 4   *   *   *    /sbin/shutdown -r +5

unten. Erläuterung:

m      h    dom        mon   dow       command
minute hour dayOfMonth Month dayOfWeek commandToRun

so die Linie

  0 4   *   *   *    /sbin/shutdown -r +5

würde Ihr System jeden Tag um 4:05 Uhr neu starten. (4:00 Uhr + 5 Minuten)

Ctrl+ X, Y, EnterSollten Sie aus crontab erhalten (bei Verwendung von Nano)

Hinweis: Möglicherweise müssen Sie crontab -eals root ausgeführt werden, da zum Herunterfahren root erforderlich ist. crontab -eöffnet eine Datei in / tmp anstelle der eigentlichen crontab, damit Ihre neue crontab auf Fehler überprüft werden kann. Wenn keine Fehler vorliegen, wird Ihre aktuelle Crontab aktualisiert.

sBlatt
quelle
1
Danke für die Information. Das Einzige, was ich tun musste, war, den Befehl in / sbin / shutdown zu ändern, damit er für mich funktioniert.
1
Das hat bei mir nicht funktioniert. Verwenden Sie beides crontab -eund sudo crontab -espeichern Sie die Datei an einem temporären Ort, wenn Sie zum Beenden gehen (z. B. /tmp/crontab.Y88XQl/crontab), und die Task wird nicht ausgeführt. ich war gezwungen, / etc / crontab direkt zu bearbeiten
wal
@wal "crontab -e öffnet eine Datei in / tmp anstelle der eigentlichen crontab, damit diese Ihre neue crontab auf Fehler überprüft und Sie daran hindert, Ihre eigentliche crontab mit diesen Fehlern zu überschreiben. Wenn keine Fehler vorliegen, wird Ihre eigentliche crontab dies tun bleibe auf dem Laufenden." unix.stackexchange.com/questions/197504/…
Christh
14

Hinzufügen zu /etc/cron.daily/zz-rebootsollte funktionieren:

#!/bin/sh
shutdown -r now

Und sudo chmod a+x /etc/cron.daily/zz-reboot. Mit dem Präfix "zz" wird erzwungen, dass alle anderen Skripts in diesem Verzeichnis als letztes ausgeführt werden. Überprüfen Sie, /etc/crontabzu welcher Tageszeit dies tatsächlich geschieht:

grep daily /etc/crontab | awk '{print $2 ":" $1}'

Wenn das nicht funktioniert, kann auch ein "normaler" Cron-Eintrag über funktionieren sudo crontab -e

MINUTE HOUR * * * shutdown -r now

Und wenn Sie nur einmalige Neustarts durchführen möchten, können Sie Folgendes verwenden at:

echo "shutdown -r now" | sudo at 04:30
Kees Cook
quelle
Soweit ich weiß, wird Ihr System jedes Mal neu
gestartet
1
Nicht ganz: Es wird einmal am Tag zu jeder Zeit neu gestartet, zu der cron.daily ausgeführt wird, was etwas unvorhersehbar ist. Wenn Sie nicht anacroninstalliert haben, ist es 06:25 Uhr Ortszeit, was in Ordnung sein kann (oder schrecklich sein kann, wenn Sie ein Frühaufsteher sind). Wenn Sie dies tun, was meiner Meinung nach die Standardeinstellung ist, kann es durchaus 10 Minuten dauern, bis sich das Gerät jeden Tag zum ersten Mal einschaltet, was ärgerlich wäre. Jedenfalls cron.dailypasst das nicht.
Poolie
cron.daily läuft jeden Abend um 6:25 auf meinem System. Dies wird normalerweise auf eine zufällige Minute zwischen 06:00 und 06:59 eingestellt. Sehen Sie sich Ihre / etc / crontab für die Zeit auf Ihrem System an
elzapp
1
Das größte Problem bei der Verwendung von cron.daily ist, dass es andere Jobs in cron.daily stören kann.
Elzapp
1

Sie sollten ein Skript mit den Anweisungen von Kees Cook erstellen ...

Sie können die folgenden Informationen einfach kopieren und in einen beliebigen Texteditor einfügen und die zz-rebootDatei in dem vorgeschlagenen Verzeichnis erstellen .

Denken Sie danach daran, mit der rechten Maustaste auf die Datei zu klicken und ihr die Ausführungsberechtigung zuzuweisen. Wenn Sie Lust haben, Terminal zu verwenden, gehen Sie wie folgt vor:

sudo chmod +x /etc/cron.daily/zz-reboot

Um besser zu verstehen , was tust du nicht vergessen , dass in /etcOrdner , den Sie Konfigurationsdateien im Allgemeinen finden und dort können Sie finden cron.hourly, cron.dailyund andere Cron - Ordner. Cron kümmert sich um die Ausführung von Anwendungen und Skripten zu einem bestimmten Zeitpunkt.

Wenn Sie streng über die Neustartzeit sein wollen, stellen Sie einfach

sudo crontab -e

So können Sie die crontabfür den Root-Benutzer bearbeiten .

Wenn Sie sich grafisch besser fühlen, können Sie die Installation über das Software Center Gnome-Schedule durchführen. Wenn Sie den gnome-scheduleBenutzer for root ändern möchten, stellen Sie sicher, dass Sie ihn vom Terminal aus ausführen:

gksudo gnome-schedule

Viel Spaß beim Herumspielen! :)

ps: toller punkt sBlatt! Ich habe mich gefragt, ob es eine Möglichkeit gibt, die cron.dailyAusführungszeit manuell zu erzwingen .

Pitto
quelle
In / etc / crontab gibt es einen Eintrag zum Anpassen der Zeit, aber wenn der Computer zu diesem Zeitpunkt heruntergefahren ist, wird er einige Minuten nach dem Start des Computers ausgeführt
sBlatt
1

Ich arbeite seit ungefähr einem Monat mit Cronjobs bei meiner Arbeit und plane das Ausschalten und den Neustart. Es ist sehr einfach. Ich weiß, dass dies vor ungefähr 5 Jahren gefragt wurde, aber wenn noch jemand Probleme hat, können Sie diese Methode verwenden und Sie werden eingestellt.

Öffne das Terminal (Strg + T)

sudo nano /etc/crontab

Scrollen Sie ganz nach unten und geben Sie den folgenden Befehl ein

00 6 * * * root reboot 

Dies ist für den täglichen Neustart um 6 Uhr eingestellt, und drücken Sie die Eingabetaste

Wenn Sie das Ausschalten jeden Tag um 23:00 Uhr planen möchten, können Sie eingeben

00 23 * * * root poweroff

Ich muss immer noch herausfinden, wie ich eine Maschine mit Cronjob einschalten kann, wenn sie außer Betrieb ist. Ich werde diese Antwort bearbeiten, sobald ich es herausgefunden habe.

PS: Dies ist meine allererste Antwort, die ich auf einem Formular gepostet habe. hoffe es hilft jemandem !! : D

techfashionista
quelle
3
Es gibt eine Antwort mit dem gleichen Inhalt von vor 5 Jahren mit mehr Details und automatischer Syntaxüberprüfung (durch crontab -e).
David Foerster
1
Vergessen Sie nicht, neu zu starten cron:sudo /etc/init.d/cron restart
Brcebn