Модуль подпроцесса Python по умолчанию передает все открытые файловые дескрипторы любым дочерним процессам, которые он запускает. Это означает, что если родительский процесс прослушивает порт и не работает, он не может перезапуститься и начать прослушивание снова (даже используя SO_REUSEADDR), поскольку дочерний процесс все еще обладает этим дескриптором. Я не контролирую дочерний процесс.
Конструктор подпроцесса POpen принимает аргумент close_fds, который закрывает дескрипторы дочернего элемента, как я хочу. Однако есть ограничение, только для Windows, которое не позволяет использовать его, если stdin / stdout также переопределен, что мне нужно сделать.
Кто-нибудь знает обходной путь для этого в Windows?