Как запустить cron без перезагрузки?

11

Я использую работу cron, чтобы звонить offlineimapкаждые 2 минуты:

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

Мне нужно было убить работу cron, чтобы исправить проблему. Как я могу перезапустить работу 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, закомментируйте эту работу, выполните техническое обслуживание, а затем раскомментируйте ее ...
jasonwryan

Ответы:

12

Cron подход

Если у вас есть привилегии 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файл.

SLM
источник
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.

hainq
источник
Добро пожаловать в Unix и Linux Stack Exchange! Хотя это может теоретически ответить на вопрос, было бы предпочтительным включить сюда основные части ответа и предоставить ссылку для справки.
SLM