私は、サーバ(tcp、kindof)として動作し、stdout(およびファイル)に関する重要な情報を記録しているpythonプログラムを書いています。このプログラムは、小さなVGAディスペイが付いたARMボード上で動作します。はPythonでロギングとncursesを別々のTTYに持っています
ここでは、プログラムが起動されたttyのログを維持しながら、ボードの物理的な表示に関する情報を表示します。
私はARM基板にSSHで接続し、/ dev/tty3でプログラムを実行します。
私はncursesを使用して、/ dev/tty1(物理ディスプレイです)に表示することに成功しました。問題は、全てのロギングが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を分離するかについての考えはありますか?