LinuxForum.Fans
Тема

скрипт для мониторинга системы

Автор: nikolya 2 сообщений 3357 просмотров
#380641

Привет!
Вопрос следующего характера: у меня задание написать скрипт который мониторит процессы и если процесс использует больше памяти чем я укажу отправлять сигнал TERM
Я написал скрипт такого плана:

text
#!/bin/bash
max_mem=$(ps -eo user,pid,pcpu,pmem --no-headers | awk '{ if ( $4 > 0.2) print $2}')
   
   echo $max_mem
  kill -9 $max_mem

Но преподователь сказал что он не будет работать или работает не корректно
Можете что то посоветовать или показать в чем я не прав?)
Спасибо

#380687

"nikolya" написал:
max_mem=$(ps -eo user,pid,pcpu,pmem --no-headers | awk '{ if ( $4 > 0.2) print $2}')
ну вам тут только pmem и pid нужен, а вы зачем-то ещё user/pcpu вывели.

Кроме того, если условие не выполнено, в переменной будет "пусто". Надо проверить этот особый случай типа
text
if [ "$max_mem" ]; then
  kill…
fi

и наконец, -9 это у меня SIGKILL, а SIGTERM -15. Здесь валялась моя маленькая статья про сигналы.

Войдите или зарегистрируйтесь, чтобы ответить.