我如何找出哪些 pty 来自哪个 qemu?

我如何找出哪些 pty 来自哪个 qemu?

我像这样运行 qemu:

$ sudo qemu -boot d -m 1024 \
-netdev tap,id=tap0 \
-device virtio-net-pci,netdev=tap0,id=vth0 \
-drive file=ubuntu.iso,media=cdrom,cache=none,if=ide \
-monitor pty \
-serial pty \
-parallel none \
-nographic

当我检查时/dev/pts/

$ sudo lsof +d /dev/pts/

Qemu pty 没有出现,尽管它们确实可以使用例如:

$ sudo screen /dev/pts/8

我如何找出哪些 pty 来自哪个 qemu?

答案1

virsh您可以使用一些脚本来这样做:

$ for i in `virsh list | awk '{print $2}' | egrep -v "^$|Name"`; do
     printf "%-14s:%s\n" $i $(virsh ttyconsole $i | grep -v "^$");
  done

cobbler       :/dev/pts/1
xwiki         :/dev/pts/3
fan           :/dev/pts/4
mercury       :/dev/pts/5
mungr         :/dev/pts/0
win2008R2-01  :/dev/pts/7

顺便说一下,通过命令创建相同的虚拟机lsof

$ lsof|grep qemu|grep ptmx
qemu-kvm   3796      root   14u      CHR                5,2         0t0        993 /dev/ptmx
qemu-kvm   3895      root   14u      CHR                5,2         0t0        993 /dev/ptmx
qemu-kvm   3972      root   14u      CHR                5,2         0t0        993 /dev/ptmx
qemu-kvm   4294      root   15u      CHR                5,2         0t0        993 /dev/ptmx
qemu-kvm  11897      root   14u      CHR                5,2         0t0        993 /dev/ptmx
qemu-kvm  16250      root   15u      CHR                5,2         0t0        993 /dev/ptmx

它看起来不像他们正在使用lsof的节目pty,只是他们正在使用ptmx.请参阅ptmx 手册页了解更多信息。

参考

左侧是虚拟机的名称,右侧是pts.

相关内容