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

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

Is [this] question about see the current running cron processes?

Да

To kill a process manually one way is to use pkill

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

sudo crontab -e

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

Итак, если я убью wget, компьютер отключится !!! - > Я хочу полностью убить задачу cron, а не ее часть!

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

    
задан mini 26.06.2013 в 17:31
источник

2 ответа

38

Во-первых, используйте только одну команду в строке в 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 "( |/)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, второй - идентификатор сеанса, а третий - команда, запущенная cron. Вы можете убить все процессы, связанные с конкретной задачей cron, используя идентификатор сеанса, поэтому в приведенном выше примере вы должны убить Session ID 4289:

pkill -s 4289
    
ответ дан Eric Carvalho 29.06.2013 в 13:05
источник
0

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

sudo pkill wget
    
ответ дан Mohammad Etemaddar 26.06.2013 в 19:21