Показать полную графическую версию : [решено] Автоматическое завершение процесса.
Проблема Такая. Есть Станция WinSrv2000 на которой стоит некая (кривонаписанная) прога с утечкой памяти как только память заполняется до определенного объема машина естессно виснет приходится сбрасывать память руками (раз в 1.5 - 2 часа). Вопрос. Возможно ли автоматизировать этот процесс? Т.е. память должна сбрасываться не через определенный интервал времени, а по мере заполнения. Можно тупо мочить процесс.
PS
Исправлять ошибки в проге вне моей компетенции.
Следующая (исправленная) версия выйдет неизвестно када.
Dimas_83
18-01-2008, 23:52
freeram - Утилита для очистки оперативной памяти - освобождает ее от накапливающегося со временем мусора как в автоматическом режиме, так и вручную. Кроме этого, показывает в графическом виде текущий статус памяти, а также загрузку RAM и процессора.
Petya V4sechkin
19-01-2008, 12:49
ГрМакс, можно скриптом .vbs (класс WMI Win32_Process (http://msdn2.microsoft.com/en-us/library/aa394372(VS.85).aspx)):
strComputer = "."
Set objWMIService = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate}!\\" _
& strComputer & "\root\cimv2")
Set colProcesses = objWMIService.ExecQuery( _
"Select * From Win32_Process " _
& "Where Name = 'notepad.exe'")
Killed = False
For Each objProcess In colProcesses
If objProcess.WorkingSetSize > 6291456 Then
objProcess.Terminate
Killed = True
End If
Next
If Killed Then
Set objShell = Wscript.CreateObject("Wscript.Shell")
objShell.Run "notepad.exe"
End If
Если notepad.exe запущен и занимает более 6 метров памяти, он убивается и запускается снова. Заменить notepad.exe на ваш процесс, а 6291456 на нужное ограничение памяти (в байтах). Выполнение скрипта можно вставить в планировщик заданий (скажем, раз в минуту).
Petya V4sechkin
СПС. Помогло :yahoo:
Все работает как надо.
Я прошу прощения за лузерство!
Как запустить этот скрипт?
У меня немного другая проблема.
Какая-то кривая прога, точнее процесс имеется. Каждое утро мне приходится его в ручную удалять (убивать).
Может есть какая-то команда для выполнения из командной строки? Там все равно им надо будет командный файл запускать!
Petya V4sechkin
30-01-2008, 09:54
starav, в командной строке:
Taskkill /?
sushnyak
07-10-2012, 16:06
Интересует найти процесс который использует максимальное кол-во памяти и завершить его.
Как это реализовать батником ?
sushnyak, используйте VBScript (почти всё необходимое для Вашего скрипта есть выше (http://forum.oszone.net/post-720620.html#post720620)).
Вопрос — зачем?
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.