Як почати роботу з кроном без перезавантаження?


11

Я використовую роботу cron, щоб дзвонити offlineimapкожні 2 хвилини:

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

Мені потрібно було вбити роботу з кроном, щоб вирішити проблему. Як я можу потім перезапустити роботу cron (без перезавантаження)? Я знайшов це "рішення" в Інтернеті:

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

Однак, використовуючи ps -ef | grep ..., я не бачу роботу ... Що не так?


Яку роботу ви не бачите?
Spack

1
Відкрийте свою crontab, прокоментуйте цю роботу, виконайте технічне обслуговування, а потім
відметіть

Відповіді:


12

Крон-підхід

Якщо у вас є привілеї sudo, ви можете зупинити / запустити послугу cron. Я вважаю, що саме це рішення, яке ви знайшли в Інтернеті, пояснювало.

Залежно від того, який дистрибутив Linux ви використовуєте, ви можете виконати ці команди:

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

Або виконайте ці команди:

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

Підхід типу блокування файлів

Ви також можете помістити файл "dontrunofflineimap" у каталог скажімо / tmp, коли ви хочете, щоб завдання offlineimap не затримувались і не запускалися трохи.

Процес працював би так. Ви торкаєтесь файлу в / tmp так:

touch /tmp/dontrunofflineimap

Завдання Cron буде змінено так:

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

Хоча цей файл існує, він фактично блокує роботу offlineimapпрограми. Коли ви хочете, щоб він відновився, просто видаліть /tmp/dontrunofflineimapфайл.


4

Ще одне рішення - відредагувати crontab та прокоментувати завдання, щоб відключити його. Це трохи приємніше, як це cronможе бути заплановано й інші роботи.

Наступна команда допомагає:

crontab -e

Якщо це кореневий код, а не користувач:

sudo crontab -e

Щоб коментувати завдання, додайте #на початку рядка. Подобається це:

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

-1

Ви можете прочитати http://tutscode.com/how-to-use-crontab-in-linux/, щоб отримати більше інформації про crontab.


Ласкаво просимо до Unix & Linux Stack Exchange! Хоча це теоретично може відповісти на питання, бажано було б сюди включити істотні частини відповіді та надати посилання для довідки.
slm
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.