os.execl ()
os.execl ( path, arg0, arg1, ... )
Функции семейства os.exec* () запускают новую программу, заменяя ей текущий процесс; они не возвращают управление обратно. В Unix новый исполняемый файл загружается в текущий процесс и будет иметь тот же идентификатор процесса, что и вызывающий. Об ошибках будут сообщаться как об исключениях OSError.
Текущий процесс заменяется немедленно. Открытые файловые объекты и дескрипторы не сбрасываются, поэтому, если в этих открытых файлах могут быть буферизованные данные, вы должны очистить их с помощью sys.stdout.flush ()
или os.fsync () перед вызовом функции os.exec*().
Варианты 'l'
и 'v'
функций exec*() отличаются тем, как передаются аргументы командной строки. С вариантами 'l'
, пожалуй, легче всего работать, если количество параметров фиксировано при написании кода; отдельные параметры просто становятся дополнительными параметрами для функций execl*(). Варианты 'v'
хороши, когда количество параметров является переменным, а аргументы передаются в виде списка или кортежа в качестве параметра args. В любом случае аргументы дочернего процесса должны начинаться с имени выполняемой команды, но это не принудительно.
Вызывает событие аудита os.exec
с аргументами path, args, env.
Доступность: Unix, Windows.
Новое в версии 3.3: добавлена поддержка указания пути в качестве дескриптора открытого файла для execve ().
Изменено в версии 3.6: Принимает объект, подобный пути (path-like object ).
Last updated