Как я могу видеть/останавливать текущее выполнение crontab задачи?

  1. Как я могу видеть crontab задачи, которые происходят?
  2. Как я могу остановить crontab задачи, которые происходят, вручную?

[Этот] вопрос о, посмотрите, что ток выполняет процессы крона?

Да

Для уничтожения процесса вручную, один путь состоит в том, чтобы использовать pkill

Я думал о pkill/killall, но некоторые мои команды в crontab файле соответственно! это означает, что после окончания команды, следующая будет запущена! например:

sudo crontab -e
00 10 * * * /usr/bin/wget LINK ; shutdown -h now

Так, Если я уничтожаю wget, компьютер будет выключен!!!-> я хочу уничтожить задачу крона полностью, не часть ее!

Следующее pkill проблема: Что относительно сценариев? (Я импортировал некоторые сценарии удара к crontab -e) --> sudo pkill ???

20
задан 29 June 2013 в 10:55

3 ответа

Во-первых, используйте только одну команду на строку в crontab. Измените эту crontab строку:

00 10 * * * /usr/bin/wget LINK ; shutdown -h now

таким образом, это похоже:

00 10 * * * /path/to/my/crontab/script1.sh

и создайте /path/to/my/crontab/script1.sh с этим содержанием:

#!/bin/bash
/usr/bin/wget LINK
shutdown -h now

Конечно, не забывайте давать ему разрешение выполнения:

chmod +x /path/to/my/crontab/script1.sh

Во-вторых, Вы видите выполнение crontab задачи, в полезном и читаемом формате, в выводе:

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

Они появятся в первых строках, чем-то вроде этого:

1108  1108 cron
4288  1108 \_ CRON
4289  4289     \_ /bin/sh -c /path/to/my/crontab/script1.sh
4290  4289         \_ /bin/bash /path/to/my/crontab/script1.sh
4295  4289             \_ /usr/bin/wget LINK

Первым столбцом является PID, второй идентификатор Сессии, и треть является командой, запущенной кроном. Можно уничтожить все процессы, связанные с определенной задачей крона с помощью идентификатора Сессии, таким образом, в примере выше Вас должен уничтожить идентификатор 4289 Сессии:

pkill -s 4289
42
ответ дан 29 June 2013 в 10:55

Чтобы убить процесс вручную, можно использовать pkill. pkill остановит все процессы, которые имеют следующий шаблон в своем имени. например, чтобы остановить все процессы wget, используйте:

sudo pkill wget
0
ответ дан 29 June 2013 в 10:55

измените свой cronjob следующим образом

00 10 * * * /usr/bin/wget LINK && shutdown -h now

Это должно работать, потому что && означает, что вторая команда выполняется только тогда, когда первая была завершена правильно (возвращая статус 0 на консоль / system), чего не должно быть (потому что процесс был убит пользователем и он должен вернуть другое значение, кроме 0).

0
ответ дан 29 June 2013 в 10:55

Другие вопросы по тегам:

Похожие вопросы: