Как остановить текущую работу cron?


45

Как я могу остановить работу cron, которая в данный момент выполняется?


2
Три ответа ниже интерпретируют этот вопрос тремя способами. @GURU, не могли бы вы уточнить, что вы хотели бы сделать? Хотели бы вы убить процесс, запущенный cron, который сейчас запущен, или вы хотите предотвратить запуск задания в будущем?
Джроуфордор

Ответы:


29

Вы можете сделать это так же, как вы остановите любой процесс.

Чтобы остановить текущее cronзадание, вы можете выполнить одно из следующих действий:

pkill process-name

или если вы знаете PID (вы можете определить его, запустив ps):

kill 1234

(подставляя фактический PID)


1
как перечислить какие в настоящее время запущенные задания cron?
UWU_SANDUN

5
@UWU_SANDUN: Вы можете использовать pgrepили grepвывод ps. Там нет ничего особенного в процессе запуска cron. Вы бы просто искали процесс под своим именем. Вы также можете сделать это, ps fauxww | grep -A 1 '[C]RON'и строки под строкой (-ами) будут показывать выполняемые задания cron. Вы можете настроить число 1 выше, чтобы увидеть подпроцессы, если таковые имеются.
Приостановлено до дальнейшего уведомления.

Обратите внимание, что вы должны запускать Cygwin в качестве администратора, чтобы убить процессы. Смотрите здесь для получения дополнительной информации об этом.
takanuva15

Используя Ubuntu, я набрал то, что предложил @ takanuva15 ps fauxww | grep -A 1 '[C]RON'. В этом списке перечислены текущие запущенные задания cron, поэтому после этого вы можете записать PID и выполнить его # kill -9 PID. Благодарность!
Расселхофф

@russellhoff: -9следует использовать только в качестве крайней меры, поскольку он не позволяет процессу выполнять очистку при выходе.
Приостановлено до дальнейшего уведомления.

17

Чтобы прекратить запуск задания cron. Сначала получите идентификатор процесса вашей команды с помощью

top -p $(pgrep -d',' your_command)

например:-

top -p $(pgrep -d',' httpd)

и беги

kill PIDзаменить PIDна идентификатор процесса


15

Странно, никто не упомянул этот метод:

$ crontab -e

В открывшемся редакторе удалите строку задачи, которую вы хотите остановить, или вставьте #знак, сохраните и выйдите

например

до

* * * * * some_script1
* * * * * some_script2

после

* * * * * some_script1
#* * * * * some_script2

или

* * * * * some_script1

перезапустите сервис после внесения изменений

sudo service cron reload

17
Это не останавливает текущее задание cron, оно останавливает будущие задания cron, которые будут запущены cron.
Иван

10

Если вы используете Redhat (RHEL) / Fedora Core / Cent OS Linux, используйте следующую команду:

/etc/init.d/crond stop

Если вы используете Debian или Ubuntu Linux, введите следующую команду:

/etc/init.d/cron stop

PS: Вы должны быть пользователем root, чтобы делать эти вещи


2
Я думаю, что он останавливает все кроны. Чтобы остановить определенный крон, могу ли я знать команду

Можете ли вы предложить любую команду сен

Я не думаю, что это возможно прямым способом. Может быть, мы должны пойти на взлом.
Сен

6

Первый тип, ps auxчтобы увидеть, что все процессы работают.

Затем запишите PIDкаждый процесс, который вы хотите остановить

Затем введите

kill {PID} для каждого процесса.

Также посмотрите на эти ссылки (ссылки суперпользователя):

Убедитесь в том, что-а-хрон-работа-уже завершенной

пс-AUX-выход-значение


3

Вы можете отредактировать таблицу cron и закомментировать задание. Переключитесь на пользователя, который управляет задачей, экспортируйте свой редактор в среду, а затем используйте crontab -l:

$ su - root
...
# EDITOR=vi; export EDITOR
# crontab -l

1
Это перечисляет crontab. Используйте crontab -eдля редактирования. Для систем, которые имеют это, предпочтительно использовать sudoвместо su. Также, crontab -eбудет работать для пользовательского (или корневого) crontab, но не для системного crontab (например /etc/cron*).
Приостановлено до дальнейшего уведомления.

1

crontab -r

удалит все запущенные crontabs, или вы можете просто прокомментировать команды в crontab, которые необходимо остановить.


0

Прежде всего, проверьте рабочий процесс с помощью этой команды.

ps -o pid,sess,cmd afx | egrep "( |/)cron( -f)?$"

Вывод этой команды

599  599 cron
4288  599 \_ CRON

а теперь убить процесс с помощью этой команды

pkill -s 4288

0

Работая на меня для Linux

pkill -9 crontab

Убивает весь процесс с именем процесса crontab

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.