我想我不清楚 getty/agetty/mgetty 程序在 linux/unix 机器上的功能是什么。我可以在 tty 上启动一个 shell,如下所示:
TTY = '/dev/tty3'
cpid = os.fork()
if cpid == 0:
os.closerange(0, 4)
sys.stdin = open(TTY, 'r')
sys.stdout = open(TTY, 'w')
sys.stderr = open(TTY, 'w')
os.execv(('/bin/bash',), ('bash',))
..如果我切换到 tty3,则有一个 shell 正在运行-但某些击键被忽略/永远不会发送到 shell。shell 知道 TTY 设置不正确,因为 bash 会说“无法打开 tty,作业控制已禁用”
我知道“termios”模块具有更改 TTY 设置的功能,这是“tty”模块使用的功能,但我找不到 python 正确设置 TTY 并启动 shell 的示例。我觉得它应该是简单的东西,但我不知道在哪里看。
查看 *etty 程序的源代码对我没有帮助-C 对我来说看起来像希腊语:-/
也许我只是没有寻找合适的条款?过去有人用 Python 替换了 *etty 程序,并且有他们愿意分享的解释吗?
感谢您接受我的基本问题:)