这个 openvt 命令在做什么?

Gra*_*ent 2 tty getty chvt

这个命令到底在做什么(一步一步)?

openvt -c 40 /bin/agetty tty40 linux
Run Code Online (Sandbox Code Playgroud)

我改用这个命令:

openvt -c 41 /bin/agetty tty40 linux
Run Code Online (Sandbox Code Playgroud)

并且 agetty 是在 tty40(不是 tty41)上启动的。这是为什么?这个-c 41选项似乎没有必要。删除它会产生相同的结果。

Ste*_*itt 6

openvt -c 40 /bin/agetty tty40 linux
Run Code Online (Sandbox Code Playgroud)

运行openvt,指示它使用 VT 40;所以它打开那个VT,并agetty在它上面运行。但是指定tty40作为参数agetty告诉后者使用 VT 40(不管它从哪里开始),所以它自己打开 VT 40 并在那里运行。

因此,

openvt -c 41 /bin/agetty tty40 linux
Run Code Online (Sandbox Code Playgroud)

打开 VT 41,然后agetty打开 VT 40 本身。

您应该只使用一个程序来打开 VT。您可以agetty直接在您想要的任何 VT 上运行,也可以告诉它在任何启动的地方运行:

agetty tty40 linux
openvt -c 40 agetty - linux
Run Code Online (Sandbox Code Playgroud)

如果删除该-c选项,openvt将选择第一个可用的 VT。