Подпроцесс Python, как определить, зависает ли дочерний процесс? - PullRequest
2 голосов
/ 16 сентября 2010

Как узнать, что мой дочерний процесс завис во время работы?

Ответы [ 2 ]

2 голосов
/ 16 сентября 2010

Ну, как вы можете определить разницу между зависшим процессом и процессом, который занимает больше времени, чем обычно? Краткий ответ: нет, вы не можете определить, застрял ли ваш дочерний процесс.

Я бы сказал, что для того, чтобы это обнаружить, вам нужна какая-то постоянная связь с процессом (например, посмотрите файлы журналов, IPC или аналогичные). Основываясь на этом сообщении, вы сможете определить, когда процесс застрял.

1 голос
/ 16 сентября 2010

Полагаю, вы спрашиваете, как вы обнаруживаете, что дочерний процесс зависает во время работы.Вы не можете легко сказать.Процесс может выполнять длительную операцию.Контекст важно понимать, когда процесс зависает.

Если вы ожидаете, что процесс ответит на ввод пользователя и не отвечает в течение длительного периода времени, мы считаем, что он завис.Процесс работает, вероятно, ожидая чего-то такого, что никогда не произойдет.«Процесс зависания» - это по-человечески способ заявить, что программа зашла в тупик и больше не будет полезна.

У вас может быть программа, вычисляющая простые числа один за другим, и она может работать вечно, но неназывается зависшим процессом.

...