Skip to the content
Documentation
Help Start
Reading in:
  • German: 9,075 of 9,075 pages
About the help in other languages
All help pages

Die Cronjob-Konsole

Setup > Cronjobs aus Sicht eines Hosters - was Support-Mitarbeitende und Kunden dort sehen und ausführen können, was die Seite von der PHP-Konfiguration braucht (proc_open, exec, posix_kill, eine CLI-Binärdatei), wie…

Download as PDF

Address: https://doc.exponential.earth/exphelp/viewer/help/hosting/operations/cronjob-console.md

On this page

This page is a translation. Read the English original

Die Cronjob-Konsole

Diese Seite ist für Support-Mitarbeitende, die die geplanten Jobs eines Kunden ohne Shell ansehen, und für Systemadministratoren, die entscheiden, was Kunden dort tun dürfen. Sie beantwortet: was Setup > Cronjobs zeigt, was es von der PHP-Konfiguration einer Hosting-Plattform braucht, wie das Anhalten funktioniert, welche Teile es nie startet und wie Sie es einem Kunden übergeben.

Das vollständige Benutzerhandbuch ist Cronjobs: ausführen, planen und verfolgen; die Referenz der Funktion ist Cronjob-Konsole. Was die Teile tun, steht auf Cronjobs.

Inhalt

  1. Was die Seite tut
  2. Was sie von der Plattform braucht
  3. Wer sie nutzen darf
  4. Teile anhalten
  5. Teile, die die Seite nicht startet
  6. Dateien, die die Seite führt
  7. Support-Szenarien
  8. Checkliste

Was die Seite tut

Setup > Cronjobs (/setup/cronjobs) zeigt eine Karte oder Zeile pro Teil:

Setup, Cronjobs: die Cronjob-Teile mit ihren Skripten, dem letzten Lauf und den Schaltflächen zum Starten oder Anhalten
Setup, Cronjobs: die Cronjob-Teile mit ihren Skripten, dem letzten Lauf und den Schaltflächen zum Starten oder Anhalten
  • ob die Crontab ihn ausführt, seinen Zeitplan in Worten, seinen nächsten und letzten Lauf;
  • den Shell-Befehl, der ihn ausführt, mit einer Schaltfläche Kopieren;
  • seine Skripte, mit dem, was jedes tut (aus der @description des Skripts);
  • Teil starten und, pro Skript, Starten, für die unter Für Website ausführen gewählte Website;
  • Ausgabe, die dem laufenden Job live folgt; Laufenden Job anhalten; Protokolle leeren;
  • Anhalten und Fortsetzen pro Teil und Alle Teile anhalten;
  • einen Abschnitt Crontab mit dem, was die Crontab jetzt enthält, und vorgeschlagenen Zeilen für Teile, die nichts ausführt.

Es läuft immer nur ein Job, der aus der Seite gestartet wurde. Jobs, die die Crontab startet, sind getrennte Prozesse; die Sperren der Skripte halten beide auseinander. Alles funktioniert ohne JavaScript.

Was sie von der Plattform braucht

Hosting-Plattformen schränken PHP oft ein. Die Seite sagt, was fehlt, statt zu scheitern:

BrauchtFürWenn es fehlt
eine PHP-Binärdatei für die Kommandozeileeinen Job als eigenen Prozess startendie Seite sagt es in Rot, und jede Schaltfläche zum Starten ist deaktiviert
proc_openeinen Job starten„proc_open ist deaktiviert, daher kann ein Cronjob nicht über die Oberfläche gestartet werden. Führen Sie ihn in einer Shell aus.“
execdie Crontab lesen (crontab -l)die Seite öffnet sich trotzdem und sagt, welche Funktion fehlt
posix_killLaufenden Job anhaltendie Seite öffnet sich trotzdem und sagt, welche Funktion fehlt
runcronjobs.php im Wurzelverzeichnis der Installationjeden Laufdie Seite nennt den Pfad, den sie erwartet hat

Die Binärdatei ist cronjob.ini [AdminSettings] PhpCliPath, wenn gesetzt, sonst die erste ausführbare Datei aus PHP_BINDIR/php, /usr/bin/php und /usr/local/bin/php; nie die PHP-FPM-Binärdatei, die die Web-Anfrage beantwortet. Auf einem Host mit mehreren PHP-Versionen setzen Sie PhpCliPath auf die, auf der die Website läuft:

# settings/override/cronjob.ini.append.php
[AdminSettings]
PhpCliPath=/opt/<php version>/bin/php

Oder mit dem INI-Befehl (der Bereich global schreibt settings/override), dann leeren Sie den INI-Cache:

./console exp:ini set cronjob.ini/AdminSettings/PhpCliPath /opt/<php version>/bin/php global
php bin/php/ezcache.php --clear-tag=ini

Hinweis Die Seite liest die Crontab des Systembenutzers, als der der Webserver läuft. Eine Crontab, die für einen anderen Benutzer eingerichtet ist (root, ein Benutzer für das Ausrollen), wird nicht gezeigt, und ihre Teile erscheinen als Nicht geplant, obwohl sie laufen. Richten Sie die Crontabs der Kunden unter dem Benutzer der Website ein, wie Cronjobs es empfiehlt.

Wer sie nutzen darf

Die Seite und ihr Ausgabestrom brauchen die Richtlinie setup/managecronjobs; in einer neuen Installation hat sie nur die Rolle Administrator. Einen Job auszuführen nutzt die Ressourcen des Servers und wirkt auf Inhalte (Benachrichtigungen werden verschickt, Links geprüft, Inhaltsjobs laufen); entscheiden Sie also pro Tarif, ob die eigenen Administratoren des Kunden sie erhalten oder ob sie bei Ihrem Support-Team bleibt.

Laufenden Job anhalten sendet SIGTERM, nicht SIGKILL, damit das Skript seine Sperre freigeben kann. Es scheitert mit „Dem Prozess <pid> konnte kein Signal gesendet werden. Er gehört möglicherweise einem anderen Benutzer.“, wenn der Job als anderer Systembenutzer läuft als der Webserver, der die Anfrage beantwortet, zum Beispiel wenn die Worker von Velocity und PHP-FPM als verschiedene Benutzer laufen.

Teile anhalten

Einen angehaltenen Teil lässt runcronjobs.php aus, wer ihn auch startet: die Crontab, ./console cron:<part>, die Befehle cron: von Velocity oder die Seite (Cronjob-Teile anhalten). Ein Teil, der während seines Laufs angehalten wird, beendet das gerade laufende Skript und lässt den Rest aus. Der Hinweis sagt, seit wann, von wem und warum:

Notice: The cronjob part 'frequent' is paused (Setup > Cronjobs). Paused since 2026-10-15 13:05 CEST by admin: Index rebuild until noon.
  • Jeder Lauf, den eine Pause auslässt, wird in cronjob_skipped.log im Log-Verzeichnis festgehalten.
  • Der Zustand ist eine Datei pro Teil, cronpart_deactivated_<part>.txt, in <cache directory>/cronjob_control/ oder in cronjob.ini [PauseSettings] Directory unterhalb des var-Verzeichnisses. Pause=disabled schaltet die Prüfung aus.
  • Das Verzeichnis folgt dem Siteaccess. Wenn die Crontab -s <site> mit einem anderen var-Verzeichnis als die Administration ausführt, setzen Sie [PauseSettings] Directory, damit beide dieselben Dateien finden.
  • Mehrere Server: Die Dateien sind lokal, es sei denn, das Verzeichnis wird geteilt.
  • Queue-Worker, die als systemd-Dienst laufen, sind keine Cronjobs und arbeiten weiter; halten Sie dafür den Dienst an.

Tipp Anhalten ist der sichere Weg, Jobs während eines Wartungsfensters oder einer Migration zurückzuhalten: Es braucht auf keinem Server eine Änderung der Crontab, und die Seite zeigt, wer was angehalten hat.

Teile, die die Seite nicht startet

cronjob.ini [AdminSettings] ForbiddenParts[] wird mit cluster_maintenance (bereinigt den Cluster-Speicher) und unlock (gibt Sperren frei, die andere Prozesse halten) ausgeliefert. Beide sind zerstörerisch und gehören in die Hände eines Administrators an einer Shell, nicht auf eine Schaltfläche; ihre Karten zeigen Gesperrt, und der Shell-Befehl auf der Karte zeigt weiterhin, wie sie ausgeführt werden. Fügen Sie der Liste in einer Überschreibung eigene Teile hinzu, wenn ein Kunde sie nicht aus dem Browser starten darf.

Dateien, die die Seite führt

Unterhalb des var-Verzeichnisses des Siteaccess der Administration, in cronjobs/ (Cronjobs, Abschnitt 14):

DateiEnthält
cronjobs/<part>/_part.logdie Ausgabe jedes Laufs eines ganzen Teils aus der Seite
cronjobs/<part>/<script>.logdie Ausgabe jedes Laufs eines Skripts
cronjobs/error.log (ErrorFile)die Standardfehlerausgabe von Läufen aus der Seite
cronjobs/history.jsondie Läufe (höchstens HistoryLength, 100)
cronjobs/state.json, cronjobs/run.pidden gerade laufenden Job

Läufe, die die Crontab startet, schreiben dorthin, wohin ihre Zeile sie umleitet; die Seite liest diese Dateien nicht. Rotieren Sie die Logs pro Teil mit logrotate des Systems.

Support-Szenarien

TicketWas Sie auf der Seite tun
„Benachrichtigungen kommen nicht mehr“prüfen Sie, dass frequent Geplant und nicht Angehalten ist; führen Sie ihn aus und lesen Sie die Ausgabe
„Wir haben Inhalte importiert, und nichts ist indiziert“führen Sie den Standard-Teil (global) für die richtige Website aus
„Ein Job hängt“Laufenden Job anhalten; gehört er einem anderen Benutzer, halten Sie ihn aus einer Shell an
„Alles während unserer Migration anhalten“Alle Teile anhalten mit einer Notiz; danach fortsetzen
„Welche Crontab-Zeile brauche ich?“kopieren Sie den vorgeschlagenen Eintrag aus Crontab

Checkliste

  • To do: PhpCliPath nennt die PHP-Binärdatei, auf der die Website läuft.
  • To do: proc_open, exec und posix_kill sind für das Konto erlaubt, oder die Einschränkungen sind für den Support dokumentiert.
  • To do: Die Crontabs der Kunden sind unter dem Benutzer eingerichtet, den die Seite liest.
  • To do: setup/managecronjobs wird bewusst und pro Tarif vergeben.
  • To do: Zerstörerische Teile bleiben in ForbiddenParts[].
  • To do: Auf mehreren Servern zeigt [PauseSettings] Directory auf gemeinsamen Speicher.

Verwandte Seiten

Werden Sie Exponential-Partner

Partner teilen ihre Informationen, stellen Mittel bereit, geben Beiträge zurück und entwickeln die Produkte mit uns, und so wächst Exponential. Eine Partner-Website und ein Dashboard sind für Mitte 2027 geplant: Werden Sie noch heute Partner, damit wir schneller wachsen und neue Funktionen früher liefern.

Something wrong on this page? Report an error

Documentation license

This documentation is free documentation, licensed under the GNU Free Documentation License 1.3 or later.

Exponential Copyright © 1998-2026 Exponential Foundation and 7x