我有一个在非交互式Docker容器中运行的CI脚本。我使用的一个应用程序(批处理模式中的emacs)期望一个TTY,即使它永远不会从中读取。
在交互模式下,我可以将/dev/tty
传递给应用程序,但是在非交互模式下,该设备甚至不存在!
如何在非交互式Docker容器中创建伪终端?
顺便说一句,我无法控制启动脚本的CI运行程序(无人驾驶飞机)...因此我无法添加-i
或-t
运行ls -R /dev
给
/dev:
fd
full
fuse
kcore
mqueue
null
ptmx
pts
random
shm
stderr
stdin
stdout
tty
urandom
zero
/dev/mqueue:
/dev/pts:
ptmx
/dev/shm:
最佳答案
尝试将脚本的调用包装在script
(字面意义)调用中。与另一个用户联系,然后访问屏幕 session 时,也存在类似的问题。
$ script /dev/null
$ emacs ...
$ exit
另请参阅https://serverfault.com/a/116830
关于emacs - 非交互式docker中的哑终端,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30674922/