![]() |
Проверка занимаемой памяти запущенного процесса
Доброго времени суток!
Подскажите пожалуйста батник который проверяет каждые секунды запущен ли процесс и если например он запущен и занимает больше 150мб памяти в оперативной памяти то дальше выполняются следующие сценарии |
Батниками такое не реализуется (по крайней мере постоянное отслеживание), этим должна заниматься служба. Максимум - можно загнать в шедулер чтобы проверялось каждые n минут, но это такой себе вариант. Проверять можно через tasklist с соответствующими фильтрами (подробнее - здесь), полагаю это будут MEMUSAGE и IMAGENAME.
|
Если батником не получиться то не беда)
В сети нашел вот такой скрипт поможете переделать под мои нужды? что бы через tasklist проверял каждые секунды запуск нужного процесса, если найден процесс и занимает 150 мб то, чтоб он не убивал процесс а замораживал, после истечений 5 минут размораживал Код:
strComputer = "." |
вот на bat с проверкой каждую секунду (в данном коде при превышении происходит перезапуск этого процесса) и это конечно нагружает процессор и это конечно извращение при наличии сейчас правильных инструментов
Код:
@echo off |
Цитата:
|
еще три нолика надо дописать чтобы Мб получились
вот на PowerShell, но легче не станет, все равно висящий нагружающий процесс (как только процесс превысит указанное потребление будет создан файл 'file.txt' в текущей директории, мониторинг - 3сек) Код:
While ((Get-Process).where{$_.Name -eq 'Имя процесса' -and $_.WS -le 150000000}) {Start-Sleep -Second 3} |
Цитата:
И почему -le? Код:
if ((Get-Process processname -OutVariable proc) -and $proc.ws -ge 150MB) {"Алярм!"} |
Цитата:
Цитата:
и ..., это же просто условие? Мониторинг надо делать из шедулера, например? Не запускать же скрипт самому каждые там сколько-то секунд? |
Время: 23:39. |
Время: 23:39.
© OSzone.net 2001-