我打开了几个 tty,但不知道用于关闭 tty 的组合键。我正在使用 Arch Linux。
答案1
“关闭”TTY
- 如果
systemd
不是正在init
使用那么这个将不会帮你。 sysvinit
是不再支持者架构Linux
systemd
的systemctl
用于控制service units
系统上的所有操作。想了解更多可以参考一下man systemd.unit
。停止getty
所需的服务tty
将执行有问题的任务。下面是执行此操作的命令,我还添加了一个测试,以便您可以确认结果。
# systemctl stop [email protected]
- 替换
X
为tty
数字你想要关闭- 如果[F4]用于切换到 然后
tty
服务名为[email protected]
。
- 如果[F4]用于切换到 然后
- 这个程序也将关闭所有应用程序/客户端从指定的
tty
.
测试
- 切换到
tty4
并输入您的username
和password
。<CTRL>+<ALT>+[F4]
- 发射你的最喜欢的文本编辑器
vim foo.bar
- 切换回
tty1
或无论tty
您原来所在的位置<CTRL>+<ALT>+[F1]
- 打开终端窗口并检查是否
vim
正在运行pgrep vim
pgrep
返回信号处理指定应用程序的编号。如果同一应用程序有多个实例,将返回多个数字- (如果有四个终端窗口打开则将
pgrep
输出四个进程号)
- (如果有四个终端窗口打开则将
- 作为根用户停止服务
getty
为tty4
# systemctl stop [email protected]
- 重新检查打开和编辑位置是否
vim
仍处于活动状态tty4
foo.bar
pgrep vim
(如果没有输出/输出比步骤4少,则没有过程)
[email protected]
仔细检查for的状态tty4
systemctl status [email protected] | grep -i "Active"
- 将输出连接到
grep -i "Active"
将仅输出所需的行,您需要观察该行以确认getty
已残疾人Active: inactive (dead)
- 将输出连接到
答案2
我相信这就是deallocvt
您正在寻找的命令。
首先确保 VT 不再使用。例如,如果有一个getty
开头为重生在init
该控制台上,尝试取消分配它是没有意义的,您需要从inittab
第一个控制台中删除该 tty 并告诉init
重新加载其配置。如果有外壳,则退出外壳等。