Wie starte ich einen Cron-Job ohne Neustart?

Wie starte ich einen Cron-Job ohne Neustart?

offlineimapIch verwende einen Cron-Job, der alle 2 Minuten aufruft :

*/2 * * * * /usr/bin/offlineimap > ~/Maildir/offlineimap.log 2>&1

Ich musste den Cron-Job beenden, um ein Problem zu beheben. Wie kann ich den Cron-Job dann neu starten (ohne Neustart)? Ich habe diese „Lösung“ online gefunden:

mylogin@myhost:~$ sudo /etc/init.d/cron restart
Rather than invoking init scripts through /etc/init.d, use the service(8)
utility, e.g. service cron restart

Since the script you are attempting to invoke has been converted to an
Upstart job, you may also use the stop(8) and then start(8) utilities,
e.g. stop cron ; start cron. The restart(8) utility is also available.
cron stop/waiting
cron start/running, process 26958

Wenn ich jedoch verwende ps -ef | grep ..., wird mir der Job nicht angezeigt ... Was ist falsch?

Antwort1

Cron-Ansatz

Wenn Sie über Sudo-Berechtigungen verfügen, können Sie den Cron-Dienst stoppen/starten. Ich glaube, das war die Erklärung der Lösung, die Sie online gefunden haben.

Je nachdem, welche Linux-Distribution Sie verwenden, können Sie entweder diese Befehle ausführen:

# redhat distros
$ sudo /etc/init.d/crond stop
... do your work ...
$ sudo /etc/init.d/crond start

Oder führen Sie diese Befehle aus:

# Debian/Ubuntu distros
$ sudo service cron stop
... do your work ...
$ sudo service cron start

Ansatz zum Sperren des Dateityps

Sie können auch eine Datei „dontrunofflineimap“ beispielsweise im Verzeichnis /tmp ablegen, wenn Sie möchten, dass die Offlineimap-Aufgabe angehalten und für eine Weile nicht ausgeführt wird.

Der Vorgang würde folgendermaßen ablaufen. Sie bearbeiten eine Datei in /tmp wie folgt:

touch /tmp/dontrunofflineimap

Der Cron-Job würde folgendermaßen geändert:

*/2 * * * * [ -f /tmp/dontrunofflineimap ] || /usr/bin/offlineimap > ~/Maildir/offlineimap.log 2>&1

Solange diese Datei vorhanden ist, blockiert sie im Wesentlichen die offlineimapAusführung der App. Wenn Sie sie fortsetzen möchten, löschen Sie einfach die /tmp/dontrunofflineimapDatei.

Antwort2

Eine andere Lösung besteht darin, die Crontab zu bearbeiten und den Job auskommentieren, um ihn zu deaktivieren. Das ist etwas angenehmer, da cronmöglicherweise auch andere Jobs geplant werden.

Folgender Befehl hilft:

crontab -e

Wenn es die Crontab des Root-Benutzers ist und nicht die des Benutzers:

sudo crontab -e

Um den Job auszukommentieren, fügen Sie #am Anfang der Zeile ein ein. So:

# */2 * * * * /usr/bin/offlineimap > ~/Maildir/offlineimap.log 2>&1

Antwort3

Du kannst lesenhttp://tutscode.com/how-to-use-crontab-in-linux/um weitere Informationen zu crontab zu erhalten.

verwandte Informationen