Убить все запущенные в данный момент задания cron
По какой-то причине мои сценарии работы cron не завершаются корректно, и они создают резервную копию моего сервера. В настоящее время для одного из моих пользователей запущено несколько сотен процессов. Я могу использовать следующую команду, чтобы убить все процессы этого пользователя, но как я могу упростить это, чтобы убить только кроны?
pgrep -U username | while read id ; do kill -6 $id ; done
Было бы опасно запускать вышеуказанную команду как есть, правильно? Разве это не убило бы MySQL и другие важные вещи?
2 ответа
Чтобы убить все процессы для пользователя, у вас есть несколько вариантов. Мне нравится:su - username
затем kill -9 -1
Чтобы увидеть, какие процессы "cron" принадлежат пользователю:
pgrep -u username cron
Чтобы убить эти процессы:
pkill -u username cron
Использование:
kill -6 $(pgrep -U username cron)
Вы можете искать с помощью pgrep полную строку с -f
arg, если вам нужно убить определенные задания cron, пока другие живут.
kill
Сигнал на самом деле очень опасен, поэтому вы должны проверить, что вы собираетесь убить. Если имя пользователя 'root', то вы можете убивать важные вещи, да.