Jak rozpocząć zadanie CRON bez restartu?

11

Używam zadania crona, aby dzwonić offlineimapco 2 minuty:

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

Musiałem zabić zadanie crona, aby naprawić problem. Jak mogę zrestartować zadanie cron (bez restartu)? Znalazłem to „rozwiązanie” online:

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

Jednak używając ps -ef | grep ..., nie widzę pracy ... Co się stało?

Marius Hofert
źródło
Której pracy nie widzisz?
Spack
1
Otwórz crontab, skomentuj tę pracę, przeprowadź konserwację, a następnie
anuluj

Odpowiedzi:

12

Podejście Crona

Jeśli masz uprawnienia sudo, możesz zatrzymać / uruchomić usługę cron. Wierzę, że to wyjaśniało rozwiązanie znalezione w Internecie.

W zależności od używanej dystrybucji Linuksa możesz wykonać następujące polecenia:

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

Lub wykonaj następujące polecenia:

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

Zablokuj podejście do typu pliku

Możesz także umieścić plik „dontrunofflineimap” w katalogu / tmp, jeśli chcesz, aby zadanie offlineimap było wstrzymywane i nie działało przez chwilę.

Proces działałby w ten sposób. Dotykasz pliku w / tmp tak:

touch /tmp/dontrunofflineimap

Zadanie cron zostanie zmodyfikowane w następujący sposób:

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

Chociaż plik ten istnieje, zasadniczo blokuje działanie offlineimapaplikacji. Aby wznowić, po prostu usuń /tmp/dontrunofflineimapplik.

slm
źródło
4

Innym rozwiązaniem jest edycja crontab i komentowanie zadania, aby je wyłączyć. To trochę przyjemniejsze, ponieważ cronmoże również planować inne zadania.

Następujące polecenie pomaga:

crontab -e

Jeśli to crontab roota, a nie użytkownik:

sudo crontab -e

Aby skomentować pracę, dodaj #na początku wiersza. Lubię to:

# */2 * * * * /usr/bin/offlineimap > ~/Maildir/offlineimap.log 2>&1
popiół
źródło