Заменить текущий процесс вызовом подпроцесса? - PullRequest
19 голосов
/ 19 июля 2011

Есть ли в python способ вызвать новый процесс, передать ему тот же контекст, например стандартные потоки ввода-вывода, закрыть текущий процесс и передать управление вызванному процессу?Это фактически «заменит» процесс.

У меня есть программа, поведение которой я хочу повторить.Тем не менее, он использует стороннюю библиотеку, и кажется, что единственный способ, которым я могу по-настоящему убить потоки, вызванные этой библиотекой, - это завершить () мой процесс python.

Плюс, похоже, это может помочьуправлять памятью.

1 Ответ

26 голосов
/ 19 июля 2011

Вас могут заинтересовать os.execv() и друзья:

Все эти функции выполняют новую программу, заменяя текущий процесс;они не возвращаются.В Unix новый исполняемый файл загружается в текущий процесс и будет иметь тот же идентификатор процесса, что и вызывающая программа.Ошибки будут сообщаться как исключения OSError.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...