1

我有一个在非交互式 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:
4

1 回答 1

1

尝试将脚本的调用包装在script(字面上)调用中。当向另一个用户发起诉讼,然后访问屏幕会话时,也会出现类似的问题。

$ script /dev/null
$ emacs ...
$ exit

另请参阅https://serverfault.com/a/116830

于 2016-05-13T20:17:41.113 回答