Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > MS Windows > как закрыть бесхозную консоль |
Автор: GremlinProg 1.11.2010, 12:52 |
Ситуация: есть mpi-проект, который соответственно запускается через mpiexec, в проекте, с учетом масштабирования задачи, создается некоторое число ролевых процессов: master, slave, terminal каждый из процессов создает (в случае GUI) или имеет, свою консоль для интерактивного анализа ( отладки ) их взаимодействия Проблема: иногда, после останова всех процессов, на десктопе остаются висеть одна-две таких бесхозных консолей, эти консоли не привязаны ни к одному из запущенных процессов, т.е. я не могу их ни как закрыть: ни из диспетчера задач, ни вручную (нажав на крестик), ни каких свойств консоли я изменить так же не могу (они просто не открываются) по ходу работы, за день таких консолей может накопиться до 3-4 спасает только жесткая перезагрузка, т.к. штатная не завершается, даже если поубивать все критические процессы, на десктопе ничего не будет, кроме этих бессмертных консолек и ось будет упорно ждать, пока они завершатся, т.е. всегда Вопрос: Возможно ли как-то по человечески прибить эти консоли, либо предотвратить их такое отпочкование от процесса ps: XP Professional 5.1.2600 SP3 |
Автор: GoldFinch 1.11.2010, 14:06 |
GremlinProg, приведи пожалуйста код, или бинарник воспроизводящий эту ситуацию. |
Автор: GremlinProg 1.11.2010, 15:26 | ||
это коммерческий проект, так что ничего существенного не приведу, для примера можно создать простую заготовку, типа:
и покрутить ее немного с mpiexec в отладчике, у меня обычно 2 слейва на 1 мастер + 1 клиент [клиент тоже имеет аналогичную консоль, но пускается за пределами mpiexec], раз на раз не приходится, но хоть один-то в день точно бывает, привязки к роли процесса нет ни какой, т.е. так может и простой клиент залипнуть единственное, что задаю консоли - шрифт lucida и размеры окна, здесь цикл - просто для примера, сами процессы, естественно многопоточные среда разработки - 2008 студия |
Автор: jonie 1.11.2010, 23:44 |
а у меня на работе (изрердка дома) такая же фигня .. притом без всяких MPI.. сдается мне это в XP-шке косяк где-то внутри .... посему предлагаю забить ) |
Автор: icecrashldr 2.11.2010, 11:40 |
GremlinProg, Это XP баг, здесь обычным отладчиком не обойтись(скорее всего только ядерным, студии точно не хватит) ... Это часто связано с планированием процессов, в APC бывает, много факторов на это играет, но честно говоря таки не было времени и особого желания продебажить эту багу ... П.С. А вот на семерки того не бывает ... |
Автор: xvr 2.11.2010, 12:21 |
Написать баг репорт в MS. Вот только пошлют ведь ... ![]() |
Автор: mihanik 2.11.2010, 13:11 |
GremlinProg, твою студию лучше на XP не использовать. У неё проблемы с совместимостью. Багов много. Лучше переходи ли на Windows 7, или на другую студию. ![]() |
Автор: GremlinProg 2.11.2010, 15:28 |
хотелось конечно малой кровью, т.к. ХР в виртуалке пока нет, а она нужна, да и времени на смену оси тоже пока нет |
Автор: Akina 2.11.2010, 16:18 |
Попробуй в качестве временного решения вручную давить их, используя, скажем, ProcessExplorer. |
Автор: GremlinProg 2.11.2010, 19:10 |
судя по названию, ProcessExplorer оперирует процессами, (а процесса-то тут как раз и нет, он уже был убит, от него только консоль и осталась) или что? посмотрю, конечно, как доберусь до нормального инета, но если его смысл только в этом, то сразу - не поможет |
Автор: leniviy 2.11.2010, 20:26 |
Это баг XP. У меня было такое же. Никак не прибить |
Автор: mihanik 2.11.2010, 20:59 |
А прятать эти консоли никак? cmdow нельзя использовать? |
Автор: GremlinProg 3.11.2010, 07:20 | ||
нет его, на самом деле нет окно привязано к несуществующему пиду это да - отличное решение, окно консоли скрыть получилось Добавлено через 2 минуты и 42 секунды
0xYYYYYYYY - дескриптор окна, его можно спаем найти |
Автор: GremlinProg 3.11.2010, 07:37 | ||
или без спая, но по заголовку (у меня там путь к исполняемому файлу), т.е. одной командой можно скрыть сразу все бесхозные mpi окна Добавлено через 12 минут и 29 секунд можно просто бросить exe'шник вот на такой батник, чтобы не морочиться:
|