Автоматический перезапуск программы при закрытии

Есть одна небольшая, но нужная программа для Windows, которая имеет тенденцию периодически помирать без видимых причин.

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

Windows XP, если это имеет значение.

  • Вопрос задан более трёх лет назад
  • 22627 просмотров

Комментировать
Решения вопроса 0
Ответы на вопрос 6

Добрый день,
Ваша программа может быть зарегистрирована в системе как сервис?
Если да, то вкладка «Recovery» в свойствах сервиса вам поможет:
mdenomy.wordpress.com/2008/02/28/using-the-automatic-recovery-features-of-windows-services/

Ответ написан более трёх лет назад
Комментировать
Нравится 2 Комментировать

Второй вариант — в sheduled task создать задачу с этим приложением, выполняться каждую минуту, duration по максимуму, не завершать в случае, если задача еще выполняется.

Ответ написан более трёх лет назад
Комментировать
Нравится 1 Комментировать
Application Monitor или Keep Running, например. (Если именно софтина, а не скрипт 🙂
Ответ написан более трёх лет назад
Комментировать
Нравится 1 Комментировать

Как отключить автоматический повторный запуск программ Windows 10 при входе

Профессиональный бездельник

С помощью for можно сделать бесконечный цикл, который запускает процесс, каждые 60 секунд проверяет что он запущен и перезапускает его, если нужно:

try
If (!(Get-Process -Name notepad -ErrorAction SilentlyContinue))
>
$proc = Get-Process -Name notepad | Sort-Object -Property ProcessName -Unique -ErrorAction SilentlyContinue
If (!$proc -or ($proc.Responding -eq $false) –or ($proc.WorkingSet -GT 200000*1024)) $proc.Kill()
Start-Sleep -s 10
Invoke-Item C:Windowsnotepad.exe
>
>
catch
>
Start-sleep -s 60
>

powershell как перезапустить процесс или приложение, если его закрыли или оно зависло

Если нужно проверить состояние процесса на удаленных компьютерах, можно использовать команду:

$proc = Get-Process -ComputerName PC01 -Name notepad | Sort-Object -Property ProcessName -Unique -ErrorAction SilentlyContinue

Для удаленного запуска процесса можно использовать Invoke-Command:

Invoke-Command -ComputerName PC01 -Credential $Cred -ScriptBlock

Читайте также:
Какие программы открывают узы

В этом случае нужно сохранить PowerShell код в файле с расширением PS1. Можно подписать этот скрипт цифровой подписью, изменить настройки политики запуска PowerShell скриптов, или запускать его с параметром –ExecutionPolicy Bypass .

  • Имя запускаемого файла: %windir%System32WindowsPowerShellv1.0powershell.exe
  • Параметры запуска: -windowstyle hidden -ExecutionPolicy Bypass –Noprofile -file %~dp0CheckProcess.ps1

Также можно запускать PS1 скрипт по расписанию с помощью задания планировщика. Используйте аналогичные параметры запуска. Дополнительно можно указать учетную запись пользователя, от имени которого запускать процесс.

Макросы VBA, запускающиеся при открытии, закрытии и прочих событиях (Серия VBA 14)

$Action= New-ScheduledTaskAction -Execute «PowerShell.exe» -Argument «-windowstyle hidden -ExecutionPolicy Bypass -file %windir%CheckProcess.ps1»
$Trigger= New-ScheduledTaskTrigger -AtLogon
$Principal=New-ScheduledTaskPrincipal -UserId «aaivanov» -LogonType Interactive
$Task=New-ScheduledTask -Action $Action -Trigger $Trigger -Principal $Principal
Register-ScheduledTask -TaskName «Check Notepad Process» -InputObject $Task

Либо этот PowerShell скрипт можно запускать в виде службы Windows

Если в запущенном приложении не требуется взаимодействие с пользователем, лучше всего запускать его в виде службы. В дальнейшем вы можете управлять этой службой через стандартную консоль services.msc или через PowerShell. В Windows есть встроенный функционал перезапуска служб либо вы можете перезапускать зависшую службу так.

Предыдущая статьяПредыдущая статья Следующая статья Следующая статья

Источник: winitpro.ru

Рейтинг
( Пока оценок нет )
Загрузка ...
EFT-Soft.ru