Уведомления

Группа в Telegram: @pythonsu

#1 Янв. 24, 2009 03:36:35

Cleric
От:
Зарегистрирован: 2007-06-26
Сообщения: 87
Репутация: +  0  -
Профиль   Отправить e-mail  

[windows] Проверка "зависания" процесса

Из скрипта с помощью os.execl запускается программа, так как эта она часто вылетает сразу после запуска (появляется стандартное виндовое окно с информацией об ошибке), приходится через некоторое время проверять, не зависла ли она, и если это так, перезапустить.
Вопроса два, осуществима ли в принципе проверка на зависание процесса в винде?
Если да, то примерное направление, в котором стоит копать?



Офлайн

#2 Янв. 24, 2009 04:04:10

bw
От:
Зарегистрирован: 2007-09-26
Сообщения: 938
Репутация: +  20  -
Профиль   Адрес электронной почты  

[windows] Проверка "зависания" процесса

Твой приложение? Пингуй. Сотню вариантов можно придумать. Пусть она с интервалом пишет что-нибудь в stdout, а ты наблюдай за её выходом и делай соответствующий выводы, если долго ничего нет (для win должно быть консольным). Если у приложения есть оконные объекты (win, с др. не работал), можно попробовать через соответствующую систему сообщений определить, жива ли собака.

..bw



Отредактировано (Янв. 24, 2009 04:05:01)

Офлайн

#3 Янв. 24, 2009 05:03:46

Cleric
От:
Зарегистрирован: 2007-06-26
Сообщения: 87
Репутация: +  0  -
Профиль   Отправить e-mail  

[windows] Проверка "зависания" процесса

приложение не моё



Офлайн

#4 Янв. 24, 2009 08:47:12

igor.kaist
От:
Зарегистрирован: 2007-11-12
Сообщения: 1879
Репутация: +  3  -
Профиль   Отправить e-mail  

[windows] Проверка "зависания" процесса

Можно посылать сообщения окну, и если программа не отвечает (зависла), в титле (черт, забыл как это будет по русски), к имени программы добавится “(не отвечает)”, что отследить можно.



Офлайн

#5 Янв. 25, 2009 03:45:52

pyuser
От:
Зарегистрирован: 2007-05-13
Сообщения: 658
Репутация: +  36  -
Профиль   Отправить e-mail  

[windows] Проверка "зависания" процесса

Посмотрите ветку http://python.su/forum/viewtopic.php?id=2599 (пост 9), там реализован примитивный контроль зависания приложения.
Хотя, если я Вас правильно понял, зависания нет, произошла ошибка и приложение ждет Вашей реакции, т.е. все работает :)



Офлайн

#6 Янв. 25, 2009 06:06:37

Cleric
От:
Зарегистрирован: 2007-06-26
Сообщения: 87
Репутация: +  0  -
Профиль   Отправить e-mail  

[windows] Проверка "зависания" процесса

pyuser, вы меня правильно поняли, изменяюсь за дезинформацию
к сожалению контроль зависания в функции TerminateApplication не подходит, именно из-за того что мне нужен не контроль зависания, а определение вылета программы (окошко с системным сообщением). И вообще возможно ли определить что приложение вылетело?



Офлайн

#7 Янв. 25, 2009 07:08:18

bw
От:
Зарегистрирован: 2007-09-26
Сообщения: 938
Репутация: +  20  -
Профиль   Адрес электронной почты  

[windows] Проверка "зависания" процесса

Опять диза.
Это не “вылет”, что за слово вообще. Приложение, с точки зрения системы, работает. Отслеживай окна приложения с некоторым интервалом. При появлении “нужного” реагируй, например снятием приложения. Определить можно по заголовку, к примеру. Всё это не имеет непосредственного отношения к Python, читай winapi, ну и, на специализированных форумах тебе помогут больше.

..bw



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version