如何关闭tty


14

我已经打开了几个tty,但不知道用来关闭tty的组合键。我正在使用Arch Linux。


2
您没有打开它们,它们是打开的。您刚刚更改了VT。如果要从其中之一注销,请使用exit。如果您尚未登录,请不要担心。以前在那里,只是您没有在看它。
goldilocks 2013年

1
@goldilocks,可以动态分配和关闭VT。第一个总是在控制台上init分配的,X通常分配下一个,但是您可以分配更多。打开/dev/ttyx设备足以分配它。
斯特凡Chazelas

@StephaneChazelas:足够公平。我只是从“使用键组合”中推断出ngwdaniel实际上并未启动init尚未产生的任何操作。如果是这样,则无需关闭它们(正如您在回答中所指出的那样,这并非易事)。
goldilocks 2013年

您的意思是减少可用tty的数量?
雏菊

@goldilocks谢谢,这是我一直在寻找的答案。我是一个愚蠢的初学者,我以为是我通过<Alt> + <F2>等打开了ttys
ngwdaniel 2013年

Answers:


10

“关闭” TTY

  • 如果systemd没有init使用,那无济于事。
  • sysvinit不再受支持的Arch Linux

systemdsystemctl用来控制所有的service units系统上。要了解更多关于它的参考man systemd.unitgetty在所需的位置停止服务tty将执行相关任务。以下是执行此操作的命令,并且我还添加了一个测试,以便您确认结果。

# systemctl stop getty@ttyX.service

  • 替换X要关闭 的tty号码
    • 如果使用[F4]切换到,tty则该服务名为getty@tty4.service
  • 此过程还将关闭从指定运行的所有应用程序/客户端tty

测试

  1. 切换至,tty4然后输入usernamepassword
    • <CTRL>+<ALT>+[F4]
  2. 启动喜欢的文本编辑器
    • vim foo.bar
  3. 切换回tty1或任何tty你最初在
    • <CTRL>+<ALT>+[F1]
  4. 打开终端窗口,检查是否vim正在运行
    • pgrep vim
      • pgrep返回指定应用程序的信号进程号。如果同一应用程序有多个实例,则将返回多个数字
        • (如果打开了四个终端窗口,pgrep则将输出四个过程号)
  5. 作为根停止getty服务tty4
    • # systemctl stop getty@tty4.service
  6. 重新检查它在打开和编辑的位置vim是否仍处于活动状态tty4foo.bar
    • pgrep vim (如果没有输出/输出少于步骤4中的输出,那么就没有进程)
  7. 仔细检查的情况getty@.servicetty4
    • systemctl status getty@tty4.service | grep -i "Active"
      • 将输出管道连接到grep -i "Active"只会输出您需要观察以确认getty禁用的所需行
        • Active: inactive (dead)

您可以使用who命令列出当前登录的用户和tty编号。
Djolo '19

5

我相信这是deallocvt您要查找的命令。

首先,确保不再使用VT。举例来说,如果有一个getty开始与重生init该控制台上,没有一点想释放它,你需要从删除TTY inittab第一,告诉init重新加载其配置。如果有外壳,请退出外壳等。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.