Практическое задание

Эта задача — шаг 10 курса «Процессы и сигналы»

Кто съел процессор

средне~3 мин

Сервер еле ворочается. На нём работают три фоновых процесса: resizer, resizer-queue и mailer. Один из них ушёл в бесконечный цикл и держит процессор на 100%. Найди его по загрузке CPU и останови — два других должны продолжить работу.

Что потренируешь:
  • ps --sort
  • top
  • pkill -x
  • сигналы
  • поиск процесса

Разбор темы

Убивать процесс стоит только тогда, когда виновник доказан: top (сортировка по %CPU) и ps --sort=-%cpu показывают, кто реально ест процессор, а колонка накопленного времени отличает давний цикл от короткого всплеска. Вторая ловушка — сигнал по имени: pkill и pgrep по умолчанию трактуют шаблон как регулярное выражение по подстроке имени, и resizer совпадёт и с resizer-queue. Флаг точного совпадения имени и «сухой прогон» через pgrep перед pkill защищают от сопутствующих жертв.

Что проверяется

  1. процесс-пожиратель остановлен
  2. resizer-queue жив
  3. mailer жив

Как это выглядит