Werden Linux-Cron-Jobs jeweils nacheinander oder parallel ausgeführt?

10

Nehmen wir an, ich erstelle zwei Cron-Jobs:

  • Cron Job A läuft jeden Tag um 8:00 Uhr
  • Cron Job B läuft jeden Tag um 8:05 Uhr

Die Ausführung von Cron Job A dauert jedoch 12 Stunden (fragen Sie nicht warum, dies ist ein Beispiel).

Wird Cron Job B um 8:05 Uhr ausgeführt oder werden Cron Jobs nur einzeln ausgeführt?

Wenn ein zuvor ausgeführter Cron-Job durch einen Systemneustart / -neustart unterbrochen wurde, wird er nach dem anschließenden Start wieder aufgenommen / ausgeführt?

Adam B.
quelle
2
Der erste Teil davon ist so einfach zu testen. Ich bin überrascht, dass Sie es nicht getan haben.
user9517
1
Testen ist eine Sache, aber ich versuche, Informationen über den Kern der Funktionsweise von Cron zu erhalten. Ja, ich kann wahrscheinlich die Cron-Quelle durchsuchen, aber das würde länger dauern. Zum Beispiel würde ich gerne wissen, ob jeder Cron-Job als neuer Prozess erzeugt wird, was nach meinem Verständnis so ist. Und auch, ob es eine Grenze für die gleichzeitige Ausführung von Cron-Jobs gibt, die tatsächlich auch auf der Implementierung zu beruhen scheint.
Adam B

Antworten:

11

Ja, Cron Job B wird um 8:05 Uhr ausgeführt. Sie können auch mehr als einen Job mit langer Laufzeit um 8:00 Uhr usw. ausführen.

Der Job wird jedoch nach einem Neustart nicht fortgesetzt. Wenn Sie so etwas benötigen, schreiben Sie Ihren Job mit einem Wrapper neu, der häufig geplant wird und prüft, ob er etwas Neues zu tun hat oder etwas anderes, um fortzufahren. Dies hängt natürlich von der Aufgabe ab, die Sie ausführen möchten.

Sven
quelle
Wenn es darauf ankäme, würde ich wahrscheinlich zu einem Daemon wechseln. Ich sehe, dass Daemons in Bezug auf Neustarts / Stromausfälle usw. möglicherweise robuster sind.
Adam B
2
@AdamB: Es gibt viele Aufgaben, für die cron ungeeignet ist. Wählen Sie wie immer das für Ihre Aufgabe geeignete Werkzeug aus. Zum Beispiel könnte es sich lohnen, einen Blick darauf zu werfen anacron.
Sven
5

Sie werden parallel ausgeführt. Cron Job B wird um 8:05 Uhr ausgeführt.

Brian Minton
quelle
1

Jeder Cron auf Ihrem System ist voneinander isoliert, aber die Ausführungszeit des Cron-Jobs hängt ausschließlich von der Zuweisung der Systemressourcen und der Arbeit ab, für die Cron geplant wurde.

Abhishek Anand Amralkar
quelle
Wird es? Ich würde denken, es könnte auch davon abhängen, was der Cronjob macht, von welchen Eingabedaten oder zu was und mehreren anderen Faktoren.
Falcon Momot