powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / Как имитировать зависание
9 сообщений из 9, страница 1 из 1
Как имитировать зависание
    #38483722
бУРов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Отлаживаю программу-сторож. Она следит, запущена или нет другая программа (программа-цель). Если программа-цель не запущена, то моя программа ее запускает.

Также она должна отследить зависание программы-цели. Если та зависла (стала потреблять немеряно ресурсов), то нужно ее убить и запустить по-новой.

Кое-что я сделал. Если руками закрываю программу-цель, то моя программа ее перезапускает.
Теперь мне нужно эмулировать зависание программы-цели. Т.е. какую-то exe-заглушку.

Есть идеи?
...
Рейтинг: 0 / 0
Как имитировать зависание
    #38483759
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Для простоты лучше их называть Master-процесс и Slave/Worker процессы.

Насчёт зависания... это сложно определять. Ведь зависнувшая программа внешне
мало чем отличается от любой другой. Можно в нее внедрить некий счётчик
который будет монотонно расти и спулить его в один файл (var/logs/slave01.counter).
Счётчик должен охватывать весь workflow алгоритма.

А мастер будет поглядывать туда и смотреть есть ли изменения счётчика за минуту времени
к примеру.

Насчёт потребления ресурсов - тут проще. Надо только задать метрики. Сколько и чего
считать порогом.
...
Рейтинг: 0 / 0
Как имитировать зависание
    #38483772
бУРов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonНасчёт потребления ресурсов - тут проще. Надо только задать метрики. Сколько и чего
считать порогом.Это да.

А вот вроде бы в винде (а речь о ней) есть механизм счетчиков. Я хотел попробовать через виндовые счетчики.
...
Рейтинг: 0 / 0
Как имитировать зависание
    #38483794
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Хм.. в MSDN всё меньше и меньше кода на С++ поиск выдаёт.
Вот есть примерчик. Можно попробовать его взять за шаблон.
http://msdn.microsoft.com/en-us/library/aa384724(v=vs.85).aspx
...
Рейтинг: 0 / 0
Как имитировать зависание
    #38483919
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
бУРовКое-что я сделал. Если руками закрываю программу-цель, то моя программа ее перезапускает.
Теперь мне нужно эмулировать зависание программы-цели. Т.е. какую-то exe-заглушку.

Есть идеи?

Sleep()

или если нужно именно программу -- можно соорудить небольшой батник с

pause 'Press any key'

и запускать cmd.exe
...
Рейтинг: 0 / 0
Как имитировать зависание
    #38487195
ДохтаР
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
бУРов
Есть идеи?

А какая у вас операционака?

Если Unix / Linux , то там уже готовый сторож есть в ОС, называется init.
...
Рейтинг: 0 / 0
Как имитировать зависание
    #38500732
Dmitry V. Liseev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не надо отслеживать зависание. Не надёжно. Надо тупо рестартовать через фиксированные интервалы времени. В микроконтроллерах вообще внешние аппаратные схемы рестартуют процессор по таймеру.
...
Рейтинг: 0 / 0
Как имитировать зависание
    #38500785
бУРов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dmitry V. LiseevНе надо отслеживать зависание. Не надёжно. Надо тупо рестартовать через фиксированные интервалы времени. В микроконтроллерах вообще внешние аппаратные схемы рестартуют процессор по таймеру.Постойте. Ведь если программа зависла, то ее сначала нужно "убить" и только после этого рстартовать.
...
Рейтинг: 0 / 0
Как имитировать зависание
    #38500855
Dmitry V. Liseev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
бУРовDmitry V. LiseevНе надо отслеживать зависание. Не надёжно. Надо тупо рестартовать через фиксированные интервалы времени. В микроконтроллерах вообще внешние аппаратные схемы рестартуют процессор по таймеру.Постойте. Ведь если программа зависла, то ее сначала нужно "убить" и только после этого рстартовать.Сначала вежливо предложить закрыться самой. Если за таймаут не завершилась, то сурово убивать и стартовать новую.
...
Рейтинг: 0 / 0
9 сообщений из 9, страница 1 из 1
Форумы / C++ [игнор отключен] [закрыт для гостей] / Как имитировать зависание
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]