Как обнаружить зависшие приложений и автоматически закрыть на windows7?
Игровой сервер периодический падает с ошибкой "Прекращена работа программы", подскажите каким образом можно идентифицировать зависшее приложение и автоматически закрывать такие для последующего перезапуска сервера?
Отбор процессов можно проверить с помощью tasklist - фильтр и там и там работает одинаково. Уточненный вызов:
tasklist.exe /FI "STATUS eq Not Responding"
Если отбирает правильные процессы замените tasklist на taskkill, команду в батник, батник повесить в шедулер. Можно навесить дополнительных фильтров, например на имя образа исполняемого файла и т.п.
Я не знаю в чем проблема, но если эмулировать зависшее приложение, то команда вида:
@ECHO OFF
taskkill.exe /f /fi "status ne running" /im "hangup.exe"
легко закрывает не отвечающую программу.
Но конкретно с сервером этот номер не проходит, батник выдает сообщение "Задачи отвечающие процессу отсутствуют" prntscr.com/a7b53z
Отберай только по /im.
Видимо для винды он все еще running. Возможно, ему нужно время, чтоб уйти в not responding или винде нужно время чтоб понять это.