我正在使用libvirt构建一个使用LXC容器的系统,并试图记录/转发容器的stdout。
在创建新域时,将在/dev/pts/*中创建伪TTY,我可以使用libvirt的virsh:virsh -c lxc:/// ttyconsole 获得附加到特定LXC容器的pts。
由于pts是数据流,所以在启动容器后,我尝试在守护进程模式下尽可能快地附加一个screen,使用一个bash脚本调用上面的virsh命令,然后调用screen:
CT_PID=$(virsh -c lxc:/// ttyconsole $domain)
screen -dmS my_task $CT_PID但是对于大多数任务来说,命令流太慢了,在附加screen之前,有些内容是通过pts传输的,因此肯定会丢失。
如何在不丢失任何数据的情况下缓冲由libvirt创建的pts设备的输出?
发布于 2020-05-15 12:23:21
对于其他libvirt驱动程序,您可以尝试使用不同的console type=值,比如file,但是lxc驱动程序需要pty。其他驱动程序支持virsh start --paused,但不支持lxc。可能的话,virsh start跟在virsh pause后面会更快一些,但它仍然很麻烦
https://unix.stackexchange.com/questions/586470
复制相似问题