Як зупинити поточну роботу на платформі cron?


45

Як я можу зупинити роботу з хроном, яка зараз працює?


2
Три наведені нижче відповіді тлумачать це питання трьома способами. @GURU, чи могли б ви пояснити, чим би ви хотіли займатися? Чи хотіли б ви вбити процес, розпочатий cron, який зараз запущений, чи хотіли б у майбутньому не допустити запуску роботи?
jcrawfordor

Відповіді:


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'. У цьому списку перераховані поточні завдання, що виконуються, ви можете записати PID вниз та виконати # kill -9 PID. Дякую!
russellhoff

@russellhoff: -9слід використовувати лише в крайньому випадку, оскільки це заважає процесу робити будь-яку очистку під час її завершення.
Денніс Вільямсон

17

Щоб перестати виконувати роботу cron. Спочатку отримайте ідентифікатор процесу вашої команди

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

наприклад: -

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

і біжи

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


14

Як не дивно, ніхто не згадував цей метод:

$ crontab -e

У відкритому редакторі видаліть рядок завдання, яке потрібно зупинити або вставити #знак, зберегти та вийти

напр

раніше

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

після

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

або

* * * * * some_script1

перезапустіть службу після внесення змін

sudo service cron reload

16
Це не зупиняє поточне завдання, яке працює в даний момент, він зупиняє майбутні завдання, які будуть запущені cron.
Іван

10

Якщо ви використовуєте Redhat (RHEL) / Fedora Core / Cent OS Linux, використовуйте таку команду:

/etc/init.d/crond stop

Якщо ви використовуєте Debian або Ubuntu Linux, наступна команда:

/etc/init.d/cron stop

PS: Ви повинні робити корінь для цього


2
я думаю, що це зупиняє всі крони. щоб зупинити конкретний крон, чи можу я знати команду

Ви можете запропонувати будь-яку команду sen

Я не думаю, що це можливо прямим шляхом .. Можливо, нам варто піти на злом.
Вересень

6

Спочатку введіть, ps auxщоб побачити, які процеси виконуються.

Потім запишіть PIDкожен процес, який ви хочете зупинити

Потім введіть

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

Також слід ознайомитись із цими посиланнями (суперусерські посилання):

Перевірте, що-це-cron-робота-виконано

ps-aux-output-значення


3

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

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

1
У цьому списку перелік крона. Використовуйте crontab -eдля редагування. Для систем, які мають його, краще використовувати sudoзамість su. Також crontab -eбуде працювати для користувача (або root) crontab, але не для системи crontab (наприклад /etc/cron*).
Денніс Вільямсон

1

кронтаб -р

видалить усі запущені крони, або ви можете просто прокоментувати команди в 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.