openvt 之后 Ctrl-C 和 ctrl-4 不起作用

openvt 之后 Ctrl-C 和 ctrl-4 不起作用

我正在尝试openvt从 init 系统启动 bash。为此我编写了以下脚本

#!/bin/bash
openvt -c 8 -- /bin/bash

它启动并运行,但 Ctrl-C 和 Ctrl-4 快捷键不起作用。 Ctrl-D、Ctrl-S 和 Ctrl-Q 可以正常工作。我还注意到,如果我从终端手动运行此脚本,它可以正常工作,但如果我从后台的另一个脚本(&)运行它,则会出现所描述的问题。

一般来说,我的任务是在空闲终端上运行任意程序。在此示例中,我将代码保持在最低限度,以使问题更加具体。

答案1

尝试stty sane在运行之前添加到脚本中openvt。例如:

#!/bin/bash
stty sane
openvt -c 8 -- /bin/bash

如果这不起作用,请尝试编写一个包装器脚本来运行,openvt而不是/bin/bash直接运行。包装器将类似于:

#!/bin/bash
stty sane
exec bash

将其另存为类似的文件/usr/local/bin/stty-sane-bash,确保它是可执行的(使用chmod +x),然后让 openvt 脚本运行它而不是 /bin/bash。

详细信息请参见man stty参考资料,但这会将 tty 设置设置为“正常”值。

答案2

似乎没有办法正确运行后台任务。唯一有效的方法是在前台运行 openvt,而不使用 -w 选项。

相关内容