Имя пользователя:
Пароль:
 | Правила  

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

Ответить
Настройки темы
CMD/BAT - Проверки запущенного процесса.

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


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

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


У мен есть программа которая должна работать 24/7 но бывает что она сама по себе может крашнуться. Как сделать так чтобы батник чекал запущена программа или нет и если нет то запускал ее, желательно с зарежкой в 1 минуту. И нужно чтобы батник проверял это постоянно

Отправлено: 14:27, 16-05-2021

 

Ветеран


Contributor


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

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


Нашел готовый vbs-скрипт.
Код: Выделить весь код
'*******************************************************************
' Описание: Запуск отсутствующей программы
'*******************************************************************

Exe = "Notepad.exe"                     ' Исполнимый файл программы
PathExe = "C:\WINDOWS\system32"         ' Путь к файлу (без \ на конце)

On Error Resume Next

If Err.Number = 0 Then
    Set WMI = GetObject("winMgmts:")
    Set Processes = WMI.ExecQuery("SELECT * FROM Win32_Process Where Name=""" + Exe + """")
    
    Present = False
    For Each Process In Processes
        Present = (UCase(Process.Name) = UCase(Exe))
'        MsgBox Process.Name + vbCrLf + Exe
    Next
    
    Set WS = CreateObject("WScript.Shell")

    If Not Present Then
        WS.Exec PathExe + "\" + Exe
    End If
    
End If
Поместите его исполнение в планировщик wscript имяскрипта.vbs и настройте его выполнение с нужной вам периодичностью. CMD здесь не удобен - будете потом бороться с окном CMD.

-------
Даже самая сложная проблема обязательно имеет простое, лёгкое для понимания, неправильное решение. Каждое решение плодит новые проблемы.

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

Отправлено: 15:53, 16-05-2021 | #2



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

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


Ветеран


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

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


В роли:
Цитата Svnkill:
программа которая должна работать 24/7 »
— Блокнот:
Скрытый текст
Код: Выделить весь код
Option Explicit

Const strProcessPath = "c:\windows\system32"
Const strProcessName = "notepad.exe"


Dim objSWbemServicesEx
Dim objSWbemEventSource


Set objSWbemServicesEx = WScript.CreateObject("WbemScripting.SWbemLocator").ConnectServer(".", "root\cimv2")

objSWbemServicesEx.Get("Win32_Process").Create strProcessPath & "\" & strProcessName, strProcessPath, Nothing, vbEmpty

Set objSWbemEventSource = objSWbemServicesEx.ExecNotificationQuery( _
	"SELECT * FROM __InstanceDeletionEvent WITHIN 1 " & _
	"WHERE TargetInstance ISA 'Win32_Process' AND " & _
	"TargetInstance.Name = '" & strProcessName & "'" _
)

Do
	objSWbemEventSource.NextEvent
	WScript.Sleep 60 * 1000
	objSWbemServicesEx.Get("Win32_Process").Create strProcessPath & "\" & strProcessName, strProcessPath, Nothing, vbEmpty
Loop

Set objSWbemEventSource = Nothing
Set objSWbemServicesEx  = Nothing

WScript.Quit 0
Это сообщение посчитали полезным следующие участники:

Отправлено: 17:14, 16-05-2021 | #3


Ветеран


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

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


PowerShell (не ниже 5)
Код: Выделить весь код
# Мониторинг процесса (каждые 5 сек), пропал - получим сообщение и запустим процесс через 1мин
$proc = "calc"
Function jbPrc {
  $query    = "Select * from __InstanceDeletionEvent within 5 where TargetInstance ISA 'Win32_Process' and TargetInstance.Name like '%$proc%'"
  $sourceId = "job$proc"
  Register-CimIndicationEvent -Query $query -SourceIdentifier $sourceId -Action {
    Write-Host "Process '$proc' disconnected!"
    Start-Sleep -s 60
    start $proc
  }
}
jbPrc

Последний раз редактировалось alpap, 17-05-2021 в 13:53.

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

Отправлено: 13:48, 17-05-2021 | #4


Ветеран


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

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


alpap, почему like, почему не «=»?

Отправлено: 16:54, 17-05-2021 | #5


Ветеран


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

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


Iska,
процесс Calculator для разных операционных систем называется по-разному, думаю не только этот процесс и орфография у некоторых хромает, поэтому - на всякий случай.

Отправлено: 17:12, 17-05-2021 | #6


Ветеран


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

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


alpap, спасибо, ясно.

Я потому нынче пользую notepad.exe в качестве подопытного кролика.

Отправлено: 19:17, 17-05-2021 | #7


(*.*)


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

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


http://forum.oszone.net/forumdisplay...ilter_by=title

-------
Канал Windows 11, etc | Чат @winsiders

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

Отправлено: 20:11, 17-05-2021 | #8


Аватара для Fors1k

Старожил


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

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


Код: Выделить весь код
While($true){(Start calc -PassThru).WaitForExit();Sleep 60} 
Это сообщение посчитали полезным следующие участники:

Отправлено: 14:42, 19-05-2021 | #9



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

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

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
CMD/BAT - Проверка занимаемой памяти запущенного процесса KaDirZhan Скриптовые языки администрирования Windows 7 29-04-2021 01:03
CMD/BAT - [решено] Помогите с написанием bat файла для проверки запущенного процесса. Stranger404 Скриптовые языки администрирования Windows 17 17-08-2020 22:50
Проверка запущенного процесса Anarasius AutoIt 2 25-06-2014 11:39
.NET - как контролировать ход выполнения запущенного процесса RUVATA Программирование и базы данных 3 31-08-2010 14:00
Java - Отслеживание состояния запущенного процесса EvgeniyQQQ Программирование и базы данных 15 02-10-2007 13:20




 
Переход