我正在尝试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 选项。