Что нового

[Процессы] Автозапуск службы

ZanMax

Тестер
Сообщения
120
Репутация
5
Всем привет.
Возникла проблема. Периодически падает служба.
Как можно реализовать периодическую проверку и запуск службы если она остановлена?
Пока копаю в сторону: net start ServiceName
Возможно есть примеры как работать с службами напрямую.
Огромное спасибо.
 

VladUs

Скриптер
Сообщения
621
Репутация
181
Код:
While 1

Local $sComputer = "." 
Local $sSrviceName = "'IPCamMailSender'" ; Имя службы
$objWMIService = ObjGet("winmgmts:\\" & $sComputer & "\root\CIMV2") 
$colItems = $objWMIService.ExecQuery( "SELECT * FROM Win32_Service WHERE Name = " & $sSrviceName) 

For  $objItem in $colItems 
    $Status =  $objItem.Started
    If Not $Status = True Then
     _StartService ($sSrviceName)
    EndIf
Next
  Sleep(5000)
WEnd

Func _StartService ($sSrvice)
$sComputer = "." 
$objWMIService = ObjGet("winmgmts:\\" & $sComputer & "\root\CIMV2") 
$objShare = $objWMIService.Get("Win32_Service.Name="& $sSrvice)
$objOutParams = $objWMIService.ExecMethod("Win32_Service.Name="& $sSrvice, "StartService")
EndFunc
 

AZJIO

Меценат
Меценат
Сообщения
2,878
Репутация
1,194
ZanMax
Посмотри Services.au3, _Services_UDF, Au3_Services.au3. И на офсайте сделай поиск по _service_start найдёшь ещё несколько ссылок или на этом сайте вот.
Кстати чем net start тебе кажется кривым? А ещё есть instsrv.exe и srvany.exe но для создания службы.
 

axlwor

Скриптер
Сообщения
657
Репутация
147
внесу свои 5 копеек ;)
Заходишь в свойства службы, восстановление... и задаешь что делать при первом, втором и последующих сбоях
 
Верх