Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Скриптовые языки администрирования Windows (http://forum.oszone.net/forumdisplay.php?f=102)
-   -   [решено] Рестартовать зависшие процессы (http://forum.oszone.net/showthread.php?t=181472)

osp2008 26-07-2010 15:25 1460904

Рестартовать зависшие процессы
 
Подскажите как через батник или VBS проверить не зависла ли программа "run.exe" или процесс "Run.exe"
и если висит то перезапустить его.
P/S просто taskkill -f не подходит нужно именно проверять и перезапускать только если завис иначе можно
потерять данные

osp2008 27-07-2010 12:32 1461397

или подскажите как стартовать файл только в том случае если его нет среди запущенных процессов

deepred 27-07-2010 13:24 1461428

osp2008,

по поводу отслеживания зависшего процесса надо подумать, а запуск
процесса по факту наличия отсутствия делается так:

Код:


strCommand = "Notepad.exe"

Set objWMIService = GetObject("winmgmts:" _
    & "{impersonationLevel=impersonate}!\\" _
    & "." & "\root\cimv2")

Set colProcesses = objWMIService.ExecQuery( _
    "Select * from Win32_Process " _
    & "Where Name = '"& strCommand &"'")

    If colProcesses.count = 0 Then

          Set objProcess = objWMIService.Get _
                            ("Win32_Process")
          intRet = objProcess.Create _
                    (strCommand, Null, null, intProcessID)

              If not intRet = 0 Then
                Wscript.Echo "Ошибка создания процесса" & _
                        vbcrlf & "Command line: " & strCommand
              End If

    Else
      Wscript.Echo  "Существует " & colProcesses.count _
                    & " экземпляр(ов) процесса" & strCommand 
    End if

Создай задачу в планировщике на кратный запуск скрипта через необходимый интервал времени...

awkozlov 29-05-2013 00:24 2158146

По отслеживанию зависшего процесса вот здесь пытаемся код создать

Iska 29-05-2013 07:25 2158219

PowerShell:
Код:

$sPath2App = "E:\Песочница\0263\BadApp\BadApp.exe"

$oProcess = Get-Process -Name BadApp -ErrorAction:SilentlyContinue

if($oProcess -eq $NULL) {
    Start-Process -FilePath $sPath2App
} else {
    if(-not $oProcess.Responding) {
        $oProcess.Kill()
        Start-Process -FilePath $sPath2App
    }
}

В качестве исполняемого файла использовалась утилита для имитации различных состояний процесса: Bad Application - Hang Process, Crash, Terminate Explorer - NTWind Software.


Время: 19:47.

Время: 19:47.
© OSzone.net 2001-