![Как запустить задание cron без перезагрузки?](https://rvso.com/image/31689/%D0%9A%D0%B0%D0%BA%20%D0%B7%D0%B0%D0%BF%D1%83%D1%81%D1%82%D0%B8%D1%82%D1%8C%20%D0%B7%D0%B0%D0%B4%D0%B0%D0%BD%D0%B8%D0%B5%20cron%20%D0%B1%D0%B5%D0%B7%20%D0%BF%D0%B5%D1%80%D0%B5%D0%B7%D0%B0%D0%B3%D1%80%D1%83%D0%B7%D0%BA%D0%B8%3F.png)
Я использую 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 ...
, я не вижу работы... Что не так?
решение1
Подход 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
файл.
решение2
Другое решение — отредактировать crontab и закомментировать задание, чтобы отключить его. Это немного лучше, так как cron
может быть запланировано и другое задание.
Помогает следующая команда:
crontab -e
Если это файл crontab пользователя root, а не пользователя:
sudo crontab -e
Чтобы закомментировать задание, добавьте #
в начале строки. Например:
# */2 * * * * /usr/bin/offlineimap > ~/Maildir/offlineimap.log 2>&1
решение3
Ты можешь читатьhttp://tutscode.com/how-to-use-crontab-in-linux/чтобы получить больше информации о crontab.