Wie starte ich einen Cron-Job ohne Neustart?

11

Ich benutze einen Cron-Job, um offlineimapalle 2 Minuten anzurufen :

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

Ich musste den Cron-Job beenden, um ein Problem zu beheben. Wie kann ich dann den Cron-Job neu starten (ohne neu zu starten)? 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

Bei der Verwendung ps -ef | grep ...sehe ich den Job jedoch nicht ... Was ist los?

Marius Hofert
quelle
Welchen Job kannst du nicht sehen?
Spack
1
Öffnen Sie Ihren crontab, kommentieren Sie diesen Job aus, führen Sie Ihre Wartung durch und kommentieren Sie ihn dann aus ...
jasonwryan

Antworten:

12

Cron Ansatz

Wenn Sie über Sudo-Berechtigungen verfügen, können Sie den Cron-Dienst stoppen / starten. Ich glaube, das hat diese Lösung, die Sie online gefunden haben, erklärt.

Abhängig von der verwendeten Linux-Distribution können Sie entweder die folgenden Befehle ausführen:

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

Oder führen Sie die folgenden 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 "dontrunofflineimap" -Datei in das Verzeichnis / tmp einfügen, wenn die Offlineimap-Aufgabe angehalten und nicht für eine Weile ausgeführt werden soll.

Der Prozess würde so funktionieren. Sie berühren 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, wird die offlineimapAusführung der App im Wesentlichen blockiert . Wenn Sie möchten, dass es fortgesetzt wird, löschen Sie einfach die /tmp/dontrunofflineimapDatei.

slm
quelle
4

Eine andere Lösung besteht darin, die Crontab zu bearbeiten und den Job zu kommentieren, um ihn zu deaktivieren. Das ist ein bisschen schöner, als cronauch andere Jobs zu planen.

Der folgende Befehl hilft:

crontab -e

Wenn es sich um die Crontab des Roots handelt und nicht um die des Benutzers:

sudo crontab -e

Fügen Sie zum Auskommentieren des Jobs #am Anfang der Zeile ein hinzu. So was:

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