나는 서버 (tcp, kindof) 역할을하는 python 프로그램을 작성하고 stdout (및 파일)에 중요한 정보를 기록합니다. 이 프로그램은 작은 VGA 디스패치가 연결된 ARM 보드에서 실행됩니다.파이썬에서 로깅 및 ncurses 별도 TTY로 이동
이제 프로그램이 시작된 tty에 대한 로깅을 유지하면서 보드의 실제 디스플레이에 대한 정보를 표시하려고합니다.
우리는 SSH를 통해 ARM 보드에 연결하고/dev/tty3에서 프로그램을 실행한다고 가정 해 보겠습니다.
나는 물리적 인 디스플레이 인/dev/tty1에 물건을 표시하기 위해 ncurses를 사용할 수있었습니다. 문제는 모든 로깅이 pyhsical 디스플레이에도 적용된다는 것입니다.
NCURSES_TTY = '/dev/tty1'
with open(NCURSES_TTY, 'rb') as inf, open(NCURSES_TTY, 'wb') as outf:
os.dup2(inf.fileno(), 0)
os.dup2(outf.fileno(), 1)
os.dup2(outf.fileno(), 2)
os.environ['TERM'] = 'linux'
logging.debug("Starting server..")
그러나 이것은 물론, 모든 출력을 리디렉션
내가 기본적으로 SO에서 발견 코드의 일부 조각은/dev/tty1로에 stodut를 리디렉션 한이를 달성합니다. ncurses와 일반 Python 로깅을 분리하여 TTY를 분리하는 방법에 대한 아이디어가 있습니까?