os.execvpe ()

os.execvpe ( file, args, env )

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

Текущий процесс заменяется немедленно. Открытые файловые объекты и дескрипторы не сбрасываются, поэтому, если в этих открытых файлах могут быть буферизованные данные, вы должны очистить их с помощью sys.stdout.flush () или os.fsync () перед вызовом функции os.exec*().

Варианты 'l' и 'v' функций exec*() отличаются тем, как передаются аргументы командной строки. С вариантами 'l', пожалуй, легче всего работать, если количество параметров фиксировано при написании кода; отдельные параметры просто становятся дополнительными параметрами для функций execl*(). Варианты 'v' хороши, когда количество параметров является переменным, а аргументы передаются в виде списка или кортежа в качестве параметра args. В любом случае аргументы дочернего процесса должны начинаться с имени выполняемой команды, но это не принудительно.

Варианты, которые включают 'p' в конце (execlp (), execlpe (), execvp () и execvpe ()), будут использовать переменную среды PATH для поиска файла программы file. Когда среда заменяется (с использованием одного из вариантов exec*e, обсуждаемых в соответствующих разделах), новая среда используется в качестве источника переменной PATH. Другие варианты, execl (), execle (), execv () и execve (), не будут использовать переменную PATH для поиска исполняемого файла; path должен содержать соответствующий абсолютный или относительный путь.

Для execle (), execlpe (), execve () и execvpe () (обратите внимание, что все они заканчиваются на 'e') параметр env должен быть отображением, которое используется для определения переменных среды для нового процесса (эти используются вместо среды текущего процесса); все функции execl (), execlp (), execv () и execvp () заставляют новый процесс наследовать среду текущего процесса.

Вызывает событие аудита os.exec с аргументами path, args, env.

Доступность: Unix, Windows.

Новое в версии 3.3: добавлена поддержка указания пути в качестве дескриптора открытого файла для execve ().

Изменено в версии 3.6: Принимает объект, подобный пути (path-like object ).

Last updated