Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » CMD/BAT - Перезапустить службу bat файлом

Ответить
Настройки темы
CMD/BAT - Перезапустить службу bat файлом

Новый участник


Сообщения: 7
Благодарности: 0

Профиль | Отправить PM | Цитировать


Здравствуйте Все!!!
У меня есть проблема, требуется перезапустить службу если она начинает использовать память больше 300 м.
Допустим программа называется test.exe в tasklist и когда ее используемая память больше 300 м то перезапуск службы с названием Test_Test.exe.
И нужно чтоб велись логи записи типа:
02.02.2012 23:00:05 the program was restarted test.exe

Всем спасибо.

Отправлено: 23:09, 01-03-2012

 

Новый участник


Сообщения: 21
Благодарности: 8

Профиль | Отправить PM | Цитировать


Расскажу по теме то что знаю

Во-первых как узнать из cmd сколько потребляет служба памяти - я не знаю.
Но знаю что любая служба или программа - это процесс, который потребляет память и время процессора.

Во-вторых такая задача скорее всего решается с помощью С++ , есть функции которые могут сканировать процессы и по какому-то конкретному процессу получить информацию о том сколько памяти он потребляет. Потом можно вызвать из этой же программы cmd с уже предопределенным параметром net stop <параметры > <служба> net start <параметры> <служба> и все.

обращайтесь если реально горит помогу с кодом

Отправлено: 14:52, 02-03-2012 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Аватара для ferget

Разный


Сообщения: 1294
Благодарности: 359

Профиль | Отправить PM | Цитировать


тут есть на vbs
http://forum.oszone.net/thread-98464.html

Отправлено: 15:42, 02-03-2012 | #3


Новый участник


Сообщения: 7
Благодарности: 0

Профиль | Отправить PM | Цитировать


в cmd я знаю как найти.
tasklist /FI "IMAGENAME eq test.exe"
там будет вывод в англиской версии как раз уменя такая
Image Name PID Session Name Session# Mem Usage
============== =========== ======== ========== =========
test.exe 1432 Console 0 593 508 K

так вот можно перенаправить этот вывод в текставой документ и потом и выдернуть значение 593 508 K и сравнить типа
если [ 593 508 > 300 000 ] тогда ребут службы. вот как то так я просто не знаю как его реализовать в bat-нике. Поэтому и обратился сюда к вам

Отправлено: 15:52, 02-03-2012 | #4


Новый участник


Сообщения: 21
Благодарности: 8

Профиль | Отправить PM | Цитировать


может тогда просто через определенные интервалы времени перезагружать сервис.
скажем подсчитаете что через каждые 2 часа память используется около 500 или выше , тогда надо каждые два часа вызывать батничек с рестартом сервиса

Отправлено: 16:23, 02-03-2012 | #5


Новый участник


Сообщения: 4
Благодарности: 0

Профиль | Отправить PM | Цитировать


for /f "skip=3 delims=" %i in ('tasklist /FI "IMAGENAME eq test.exe"') do echo %i
Это тебе для затравки.

Отправлено: 22:23, 02-03-2012 | #6


Новый участник


Сообщения: 2
Благодарности: 1

Профиль | Отправить PM | Цитировать


Подниму темку. Может кто знает как перезапустить службу из bat. В консоли служб путь к исполняемому файлу выглядит так "C:\Program Files\1C\Licence 1.1\Bin\LicenceServer.exe /Service". В диспетчере задач процесс висит LicenceServer.exe. Попытки использовать следующие команды не проходят:

net stop "C:\Program Files\1C\Licence 1.1\Bin\LicenceServer.exe"
Синтаксическая ошибка в имени файла, имени папки или метке тома.

net stop LicenceServer.exe
Указанная служба не установлена

Вариант с жестким убийством процесса оставляю на крайний случай. Может есть еще какие варианты чтобы автоматически перезапустить службу?

Отправлено: 09:38, 26-06-2013 | #7


Ветеран


Сообщения: 27449
Благодарности: 8087

Профиль | Отправить PM | Цитировать


Сначала получите имя службы, наподобие:
Код: Выделить весь код
wmic.exe Service where "PathName like 'C:\\Program Files\\1C\\Licence 1.1\\Bin\\LicenceServer.exe%'" get Name /value
Можете и тут:
Цитата alexinqmetal:
В консоли служб »
посмотреть имя в её свойствах.

Затем, используя полученное имя службы, пробуйте net stop/net start.

А что, подвисает?
Это сообщение посчитали полезным следующие участники:

Отправлено: 10:08, 26-06-2013 | #8


Новый участник


Сообщения: 2
Благодарности: 1

Профиль | Отправить PM | Цитировать


Спасибо, нашел имя службы оказалось LicenceService.

Подвисает не сама служба, а из-за 1С зависают лицензии, что очень мешает, приходится хотя бы раз в день перезапускать службу чтобы сбросить занятые лицензии. Поэтому пока ищу источник проблемы 1С и решил написать перезапускалку службы.
Это сообщение посчитали полезным следующие участники:

Отправлено: 13:03, 26-06-2013 | #9



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » CMD/BAT - Перезапустить службу bat файлом

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
CMD/BAT - [решено] CMD/BAT - С помощью bat-ника найти и удалить текст в файле InVariable Скриптовые языки администрирования Windows 4 22-05-2015 20:06
CMD/BAT - [решено] Запуск bat-файла от имени админа.Как сделать каталог этого bat-файла текущим?? axmed0207 Скриптовые языки администрирования Windows 1 19-01-2012 06:14
CMD/BAT - [решено] программа(.bat файл) которая случайным образом запускает .bat файлы из предложенных gangsterovich Скриптовые языки администрирования Windows 1 07-12-2010 06:45
Как перезапустить GUI окно? Centrinar AutoIt 2 18-06-2010 16:44
проблема с ребутом компа. процесс winlogon инициировал действие "Перезапустить" dhorasoo Microsoft Windows NT/2000/2003 1 31-07-2009 22:00




 
Переход