У меня есть несколько скриптов, которые запускают несколько процессов для задач в фоновом режиме. Большинство из них завершается, но некоторые из них не прекращаются после завершения задачи.
Количество таких процессов постоянно растет, и теперь они потребляют большую часть ресурсов сервера.
Все они имеют статус Sl
Как я могу убить их всех сразу? Например, я хочу запустить cron, который убьет и удалит все эти процессы из системы через определенное время.
Эта команда работает в моей системе, чтобы убить процессы vi с состоянием "S". Измените S на S1 и шаблон регулярного выражения имени процесса на любое, чтобы получить то, что вам нужно.
ps ah -o pid,state,command | egrep "^.+\ S\ vi$" | cut -f1 -d' ' | xargs kill -KILL
Crontab:
00 01 * * * ps ah -o pid,state,command | egrep "^.+\ S\ vi$" | cut -f1 -d' ' | xargs kill -KILL
Я предлагаю вам изучить что-то более элегантное, например, встроить что-то в свои существующие сценарии для работы с зависающими процессами или выяснить, почему они не завершаются, и т.