|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » CMD/BAT - Перезапустить службу bat файлом |
|
CMD/BAT - Перезапустить службу bat файлом
|
Новый участник Сообщения: 7 |
Профиль | Отправить 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
|
Профиль | Отправить PM | Цитировать Расскажу по теме то что знаю
Во-первых как узнать из cmd сколько потребляет служба памяти - я не знаю. Но знаю что любая служба или программа - это процесс, который потребляет память и время процессора. Во-вторых такая задача скорее всего решается с помощью С++ , есть функции которые могут сканировать процессы и по какому-то конкретному процессу получить информацию о том сколько памяти он потребляет. Потом можно вызвать из этой же программы cmd с уже предопределенным параметром net stop <параметры > <служба> net start <параметры> <служба> и все. обращайтесь если реально горит помогу с кодом |
Отправлено: 14:52, 02-03-2012 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Разный Сообщения: 1294
|
Профиль | Отправить PM | Цитировать тут есть на vbs
http://forum.oszone.net/thread-98464.html |
Отправлено: 15:42, 02-03-2012 | #3 |
Новый участник Сообщения: 7
|
Профиль | Отправить 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
|
Профиль | Отправить PM | Цитировать может тогда просто через определенные интервалы времени перезагружать сервис.
скажем подсчитаете что через каждые 2 часа память используется около 500 или выше , тогда надо каждые два часа вызывать батничек с рестартом сервиса |
|
Отправлено: 16:23, 02-03-2012 | #5 |
Новый участник Сообщения: 4
|
Профиль | Отправить PM | Цитировать for /f "skip=3 delims=" %i in ('tasklist /FI "IMAGENAME eq test.exe"') do echo %i
Это тебе для затравки. |
Отправлено: 22:23, 02-03-2012 | #6 |
Новый участник Сообщения: 2
|
Профиль | Отправить 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
|
Профиль | Отправить 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
|
Профиль | Отправить PM | Цитировать Спасибо, нашел имя службы оказалось LicenceService.
Подвисает не сама служба, а из-за 1С зависают лицензии, что очень мешает, приходится хотя бы раз в день перезапускать службу чтобы сбросить занятые лицензии. Поэтому пока ищу источник проблемы 1С и решил написать перезапускалку службы. |
Отправлено: 13:03, 26-06-2013 | #9 |
Участник сейчас на форуме | Участник вне форума | Автор темы | Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
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 |
|