- PowerShell: автоматический перезапуск приложения/процесса при сбое
- Как автоматически перезапустить сбойное приложение в Windows 10
- Как отключить автоматический повторный запуск программ при входе в Windows 10
- Отключение перезапуска программ при входе в систему
- Видео инструкция
- Как работает автоматический запуск открытых при завершении работы программ
- Дополнительные методы отключения автоматического повторного запуска программ
- Автоматический запуск приложения после его закрытия
- Решение
- Решение
PowerShell: автоматический перезапуск приложения/процесса при сбое
Рассмотрим, как с помощью PowerShell проверить, запущено ли определенное приложение или процесс, как автоматически перезапустить его при сбое, если его случайно закрыл пользователь или он стал утекать (использовать слишком много оперативной памяти).
Ранее мы показывали, как с помощью PowerShell можно управлять процессами Windows. Чтобы проверить, запущен ли процесс notepad.exe и перезапустить его, можно использовать такой скрипт.
If (!(Get-Process -Name notepad -ErrorAction SilentlyContinue))
Можно автоматически перезапустить процесс, если он не отвечает (завис) или если он стал использовать слишком много оперативной памяти (в этом примере более 500 Мб):
$proc = Get-Process -Name notepad| Sort-Object -Property ProcessName -Unique
If (($proc.Responding -eq $false) –or ($proc.WorkingSet -GT 500000*1024)) <
$proc.Kill()
Start-Sleep -s 10
Invoke-Item C:\Windows\notepad.exe
>
С помощью for можно сделать бесконечный цикл, который запускает процесс, каждые 60 секунд проверяет что он запущен и перезапускает его, если нужно:
for(;;)
<
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:\Windows\notepad.exe
>
>
catch
<
>
Start-sleep -s 60
>
$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%\System32\WindowsPowerShell\v1.0\powershell.exe
- Параметры запуска: -windowstyle hidden -ExecutionPolicy Bypass –Noprofile -file %
Также можно запускать PS1 скрипт по расписанию с помощью задания планировщика. Используйте аналогичные параметры запуска. Дополнительно можно указать учетную запись пользователя, от имени которого запускать процесс.
$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
Как автоматически перезапустить сбойное приложение в Windows 10
Работающие в Windows 10 приложения могут внезапно закончить свою работу или намертво зависнуть, так бывает. Это совсем необязательно указывает на нестабильность приложения и наличие в нём ошибок, такие неполадки могут вызываться и другими причинами. Приложение может «упасть» или зависнуть, если в самой Windows наблюдаются проблемы или компонент, от которого оно зависит, поврежден или работает некорректно. Некоторые приложения умеют перезапускаться после аварии, но большинство программ такой способностью не обладают.
Компенсировать этот недостаток может Restart on Crash — небольшая портативная бесплатная утилита, предназначенная для автоматического перезапуска сбойных и зависших процессов. Находясь в активном состоянии, она отслеживает статус добавленных в её список приложений и перезапускает их, если по какой-то причине они перестают отвечать или завершаются некорректно. Restart on Crash имеет легкий интерфейс и минимум настроек, посему взята она может быть на вооружения даже начинающими пользователями.
Единственный минус — в утилите нет русского языка, но это не должно стать особым препятствием.
Запустив утилиту, нажмите кнопку «Add» и выберите в открывшемся окне нажатием кнопки «Select a file» исполняемый файл приложения, процесс которого намереваетесь отслеживать. Также вы можете нажать «Select a running application».
И выбрать приложение из списка запущенных процессов, однако будьте осторожны, так как в нём перечислены и процессы в самой Windows. Если не знаете, за что отвечает тот или иной процесс, лучше не трогайте его.
В этом же окошке можно задать настройки мониторинга, например, указать утилите, при выполнении каких условий проблемный процесс должен быть перезапущен: когда он не отвечает или же когда он внезапно падает. Можно задать время повторной проверки отклика зависшего процесса, а также уточнить действие, которое должно будет выполняться после падения сбойного приложения. Доступны принудительное завершение процесса (если окно закрыто, а сам процесс еще висит) , закрытие всех не отвечающих процессов и выполнение определенную команды.
Когда Restart on Crash обнаруживает, что приложение не отвечает или не работает, он ждёт 60 секунд (это время по умолчанию) , а затем перезапускает его. Restart on Crash хорошо показал себя с десктопными программами, чего нельзя сказать об универсальных приложениях. Работу с некоторыми из них он поддерживает, с некоторыми нет. И ещё. Утилита предназначается исключительно для перезапуска приложений, она не сохраняет никаких результатов их работы и уж тем более не создает снапшотов состояния.
Как отключить автоматический повторный запуск программ при входе в Windows 10
В Windows 10 последних версий появилась новая «функция», включенная по умолчанию — автоматический запуск программ, которые были запущены на момент завершения работы при следующем включении компьютера и входе в систему. Работает это не для всех программ, но для многих — да (проверить легко, например, Диспетчер задач, браузер — перезапуск происходит).
В этой инструкции подробно о том, почему так стало происходить и как отключить автоматический запуск ранее выполнявшихся программ в Windows 10 при входе в систему (и даже до входа) несколькими способами. Учитывайте, что это не автозагрузка программ (прописываемая в реестре или спец. папках, см.: Автозагрузка программ в Windows 10) и речь не идет о нежелательных вещая, таких как описаны в инструкции: Сам запускается браузер с рекламой при входе в Windows.
Отключение перезапуска программ при входе в систему
Если вам требуется отключить автоматический запуск открытых программ при повторном включении компьютера или ноутбука с Windows 10, сделать это очень просто:
- Зайдите в Пуск — Параметры — Учетные записи (или нажмите клавиши Win+I).
- Откройте раздел «Варианты входа», пролистайте вниз список параметров и в разделе «Конфиденциальность» отключите пункт «Перезапустить приложения» (внимание: этот пункт появился только в последней версии Windows 10, если у вас его нет, просто выполняем шаги далее).
- Отключите пункт «Использовать мои данные для входа для автоматического завершения настройки устройства и открытия моих приложений после перезапуска или обновления».
Обычно приведенных изменений достаточно для того, чтобы не закрытые программы не запускались снова при повторном входе в систему.
Видео инструкция
Как работает автоматический запуск открытых при завершении работы программ
Судя по поведению процесса перезапуска программ, суть нововведения сводится к тому, что теперь ярлык «Завершение работы» в меню Пуск выполняет выключение компьютера, используя команду shutdown.exe /sg /hybrid /t 0 где параметр /sg отвечает за перезапуск приложений. Ранее этот параметр не использовался.
Отдельно отмечу, что по умолчанию перезапускаемые программы могут запускаться ещё до входа в систему, т.е. пока вы находитесь на экране блокировки, за что отвечает параметр «Использовать мои данные для входа для автоматического завершения настройки устройства после перезапуска или обновления» (о самом параметре — далее в статье).
Обычно это не представляет проблемы (при условии, что перезапуск вам нужен), но в некоторых случаях может вызывать неудобства: совсем недавно получил в комментариях описание такого случая — при включении перезапускается ранее открытый браузер, в котором есть вкладки с автоматическим воспроизведением аудио/видео, как результат — уже на экране блокировки слышен звук воспроизведения контента.
Дополнительные методы отключения автоматического повторного запуска программ
Есть несколько способов отключить запуск не закрытых при выключении программ при входе в систему, а иногда, как было описано выше — ещё до входа в Windows 10.
- Самый очевидный (который по какой-то причине рекомендуют на форумах Майкрософт) — закрывать все программы перед завершением работы.
- Второй, менее очевидный, но слегка более удобный — удерживать клавишу Shift при нажатии «Завершение работы» в меню Пуск.
- Создать собственный ярлык для завершения работы, который будет выключать компьютер или ноутбук таким образом, чтобы перезапуск программ не производился.
Первые два пункта, надеюсь, не требуют пояснений, а третий опишу подробнее. Шаги для создания такого ярлыка будут следующими:
- Нажмите в пустом месте рабочего стола правой кнопкой мыши и выберите пункт контекстного меню «Создать» — «Ярлык».
- В поле «Введите расположение объекта» введите %WINDIR%\system32\shutdown.exe /s /hybrid /t 0
- В «Имя ярлыка» введите что захотите, например, «Завершение работы».
- Нажмите правой кнопкой мыши по ярлыку и выберите пункт «Свойства». Здесь рекомендую в поле «Окно» установить «Свернутое в значок», а также нажать кнопку «Сменить значок» и выбрать более наглядную иконку для ярлыка.
Готово. Этот ярлык можно (через контекстное меню) закрепить в панели задач, на «Начальном экране» в виде плитки или же разместить в меню «Пуск», скопировав его в папку %PROGRAMDATA%\Microsoft\Windows\Start Menu\Programs (вставьте этот путь в адресной строке проводника, чтобы сразу попасть в нужную папку).
Чтобы ярлык всегда отображался вверху списка приложений меню Пуск, можете задать поставить какой-либо символ перед названием (ярлыки сортируются по алфавиту и первыми в этом алфавите располагаются знаки препинания и некоторые другие символы).
На этом всё. Надеюсь, материал будет полезным.
Автоматический запуск приложения после его закрытия
Автоматический запуск приложения после его закрытия со счётчиком перезапусков
Где то натыкался на такую возможность: автоматический запуск приложения (в виндовс) после его.
Запуск N-ного батника после закрытия приложения
Привет форумчанам! Требуется реализовать в bat-файле такое: 1. Запуск приложения (.\Game.exe).
Переименование файла, запуск приложения и обратное переименование после закрытия приложения
Есть файл который нужно переименовать с последующим запуском приложения от имени администратора, а.
Автоматический запуск приложения со съемного носителя
Вот появился такой вопрос: как запустить приложение со съемного носителя? autorun.inf крутил, но.
Решение
Смысл в том, чтобы пинг не прошел.
192.168.254.254 — это заведомо не существующий IP-адрес.
Он то, конечно, может реально существовать в локалке, но с очень низкой вероятностью кто-нибудь себе поставит подсеть 254.
Можно и себя. Но там 1-й пакет тогда приходит сразу без учета паузы. Поэтому нужно еще единичку прибавлять к кол-ву запросов.
У меня батник запускает нужный файл и закрывается, не остается висеть проверяя его состояние. windows 7.
Попробовал в этом случае запускать из первого второй батник тот в свою очередь снова запускает первый, параллельно проверяя состояние, но теперь командная строка выдает: «waiting» не является внутренней или внешней командой, исполняемой программой или пакетным файлом. Не удается найти указанную метку пакетного файла — waiting
В чем может быть дело?
Решение
Возможно, Вы допустили ошибку № 4 Наиболее частые ошибки.
Также прилагаю другой вариант паузы:
Badger, спасибо. Исправил.
Непривычка после Visual Basic — там наоборот.
Можно ли как то задать время опроса проверки? Что бы не каждую секунду было.
И еще вопрос, при возникновении ошибки и вывода окна — Приложение будет закрыто (Отправить отчет или Не отправить отчет) поможет ли батник?
увеличьте параметр -w 1000
Можно вообще без опроса:
Может прокатить, может, нет. Зависит от конкретной программы.
Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь или здесь.
Запуск приложения и его удаление
Необходимо написать батник в 2 строки: запуск определенного приложения по заданному пути и удаление.
Запуск reg-файла после проверки времени его создания
Фуромчане, помогите Попробовал разбраться сам, потрател день, но так и не получилось Задача.
Автоматический запуск команд в консоли
Есть консольная программа, adb.exe. Чтобы ее запустить, я вынужден каждый раз переходить в папку с.
Автоматический запуск приложения после компиляции
где то есть такая опция — компелируешь dll и после компеляции студия должна запустить прилодение.