Python 3.11+Linux · macOSosфункция
os.login_tty
os — псевдотерминалы (pty)
Делает указанный дескриптор управляющим терминалом текущего процесса (для сессии). Доступно на Unix.
Синтаксис
os.login_tty(...)
Делает переданный дескриптор управляющим терминалом и стандартными потоками текущего процесса: создаёт новую сессию и перенаправляет на него 0, 1 и 2. Вызывается в потомке после fork. Исходный дескриптор закрывается. Появилась в Python 3.11.
Примеры
import os
master, slave = os.openpty() # только Unix: пара дескрипторов псевдотерминала
pid = os.fork() # только Unix: 0 в потомке, pid потомка в родителе
if pid == 0: os.login_tty(slave); print('hello'); os._exit(0) # → ? только Unix: потомок стал лидером сессии, slave стал его управляющим терминалом и stdin/stdout/stderr (и сам дескриптор закрыт), печать уходит в псевдотерминал
print(os.read(master, 1024)) # → b'hello\r\n' — родитель читает вывод потомка, терминал заменяет \n на \r\n
r, w = os.pipe() # обычный канал, не терминал
print(os.login_tty(r)) # → OSError — годится только дескриптор терминала
См. также
Частые ошибки
Открыть в полном глоссарииdocs.python.orgСообщить о неточности