Ist ein Neustart von cron oder crond nach jedem neuen Hinzufügen oder Ändern eines Zeitplans erforderlich?

29

Wenn ich einen Job einplane, werden einige sofort angewendet, andere nach einem Neustart. Ist es also empfehlenswert, nach dem Hinzufügen eines neuen Cron-Jobs neu zu starten cron( crond)? Wie das richtig zu machen (insb. In einem Debian - System) und soll , dass mit durchgeführt werden sudo(wie sudo service cron restart) auch für die den normalen Benutzer?

Ich habe es versucht:

/etc/init.d/cron restart

Das scheint nicht zu funktionieren ( /etc/init.d/cron stopoder auch nicht service cron stop) und wird mit dem Rückkehrcode 1 vervollständigt.

Hier ist ein Teil der Nachrichtenausgabe:

Da das Skript, das Sie aufrufen möchten, in einen Upstart-Job konvertiert wurde, können Sie auch das Dienstprogramm stop (8) verwenden, z. B. stop cron stop: Abgelehnte Sende-Nachricht, 1 übereinstimmende Regeln; type = "method_call", sender = ": 1.91" (uid = 1000 pid = 3647 comm = "stop cron") interface = "com.ubuntu.Upstart0_6.Job" member = "Stop" error name = "(unset)" request_reply = "0" destination = "com.ubuntu.Upstart" (uid = 0 pid = 1 comm = "/ sbin / init")

(was bedeutet das?)

präzise
quelle

Antworten:

18

Nein, Sie müssen nicht neu starten cron, es werden die Änderungen an Ihren Crontab-Dateien (entweder /etc/crontaboder einer Benutzer-Crontab-Datei) bemerkt .

An der Spitze Ihrer / etc / crontab haben Sie wahrscheinlich (wenn Sie die Vixie-Implementierung crondieses IIRC haben, ist dies die unter Debian):

# /etc/crontab: system-wide crontab
# Unlike any other crontab you don't have to run the `crontab'
# command to install the new version when you edit this file
# and files in /etc/cron.d. These files also have username fields,
# that none of the other crontabs do.

Möglicherweise werden bestimmte Änderungen nicht implementiert, wenn Sie z. B. Dinge hinzufügen /etc/cron.dailyund der tägliche Lauf bereits stattgefunden hat.

Die Meldung, die Sie erhalten, ist, weil Sie auf Ihrem System eine alte Methode zum Neustarten von cron verwendet haben. Der empfohlene Weg (aber nicht notwendig, wenn Sie nur Cron-Dateien bearbeiten) ist:

 restart cron

Sie müssen natürlich neu starten, um die Auswirkungen eines @ Reboot-Cron-Jobs zu sehen

Timo
quelle
es war kein Neustart Job , aber alle n Minuten Cron - Job .. und Neustarten scheinen die Arbeit mit sudo mit den alten und neuen Wegen .. aber nicht für einen normalen Benutzer ..
präzisen
Wie bearbeitet man die Crontab? Als Benutzer mit crontab -e?
Timo
ja .. crontab -eist was ich benutze ..
präzise
Haben Sie Vixie Cron (siehe man cron-> Name)
Timo
1
Es scheint, dass das Speichern der Änderungen nicht ausreicht, und die geplanten Jobs werden erst angewendet, nachdem der Texteditor (den ich verwende nano) ebenfalls geschlossen wurde! ..und vielleicht ist das die Verwirrung verursacht ...
präzise
3

Ein Neustart ist möglicherweise nicht erforderlich. Wie ich in meinen Kommentaren sagte, muss der Texteditor , den Sie zum Bearbeiten der Aufgabe verwendet haben (derjenige, der zum Bearbeiten von Cron-Jobs zugewiesen ist), geschlossen werden . Nur den Inhalt zu speichern ist nicht genug . (Das habe ich erlebt. Das Bearbeiten von Aufgaben über nanound das Speichern mit Ctrl+ Obei noch geöffneter Datei übernimmt die Änderungen nicht sofort, sondern erst, nachdem der Editor mit Ctrl+ geschlossen wurde X.)

Und wie in dieser Antwort (von terdon ) erwähnt, prüft der cron-Daemon jede Minute, ob ein Job ausgeführt werden soll, und löst die aus, die er ausführen muss.

präzise
quelle