Здравствуйте! Хочу загрузчик как бы для основной программы наваять, который бы проверял нужные параметры и вдруг чего перезапускал ее (работа с железками через COM-порт и прочие внешние устройства требует надзора).
В этой задаче проблемы нет. Но вот пока совершенствую программу, бывали ошибки Exeption и прочие радости. Их можно как-то отследить для перезапуска программы? Может есть какой компонент для этого, а я пропустил?
Этот топик читают: Гость
Ответов: 704
Рейтинг: 7
|
|||
карма: 0 |
|
Ответов: 1343
Рейтинг: 31
|
|||
Конечно есть, лично сам пользуюсь автоперезапуском при крашах приложений, работает по такой схеме:
ведёт логи, ловит, перезапускает убитое приложение...ну думаю разберётесь)) .......... так же особенность, есть проверка на какие приложения в какой папке реагировать, дабы не вылезать за рамки скажем своих утилит, которые надеюсь лежат в одной папочке) если есть желаение можно в логи ещё и скриншоты ошибок сохранять, просто брать Handle ошибок и делать скриншот, сохраняя их в ту же папку что логи, под именем из точной даты, а далее сверять всё по логам, если конечно это нужно
Редактировалось 4 раз(а), последний 2018-10-12 00:10:12 |
|||
карма: 2 |
|
Ответов: 704
Рейтинг: 7
|
|||
Rysik, очень благодарен за такое тонкое и удобное решение!
|
|||
карма: 0 |
|
Главный модератор
Ответов: 2999
Рейтинг: 396
|
|||
WatchDog процесса в памяти машины и перезапуск в случае выгрузки из неё.
Редактировалось 1 раз(а), последний 2018-10-12 15:17:20 |
|||
карма: 6 |
| ||
файлы: 1 | MonitorProcess.vbs.zip [2.9KB] [408] |
Ответов: 1343
Рейтинг: 31
|
|||
есть ещё некоторые более тонкие методы проверки, они будут работать более точно
ставим на отслеживаемую программу MailSlot сервер, а на ту программу которая будет следить, ставим клиент, и ставим опрос на таймер, отправку любых данных на сервер, и в случае успеха отправки, программа выдаст 1, если программа выдала 0, значит она выдала ошибку, либо зависла, либо вырубилась, убиваем на всякий случай программу по PID или ProcName и запускаем заного.... если же в ходе работы программы нагружается память, то можно сделать опрос выделенной памяти на определённый процесс, если превышает, то убиваем, запускаем заного если в ходе работы программы она начинает работать с ошибками, то самый действенный метод сделать опрос основной части программы, тоесть опрашивать те узлы, которые совершают основную работу(например через тот же MailSlot делать опрос COM порта какого нибудь параметра железа), если вылезли отклонения или ошибки, или же таймаут истёк, перазапускаем Редактировалось 2 раз(а), последний 2018-10-16 21:17:37 |
|||
карма: 2 |
|
5