[libvirt-users] redirecting guest stdio to the host

Dave Allan dallan at redhat.com
Wed May 28 18:44:55 UTC 2014


On Wed, May 28, 2014 at 11:28:19AM -0600, Eric Blake wrote:
> On 05/28/2014 09:14 AM, Alexander Binun wrote:
> 
> [can you convince your mailer to wrap long lines?]
> 
> > 
> > I have a program running on a VM guest. Its output is valuable (for VM introspection) so I want to let the host module know about it. I prefer to redirect  ' stdio" of a guest into a device at the host (a text file or my device that has the name "mydev" 
> > and the driver is written for it). 
> > 
> > I have the XML definition file for my VM in /etc/libvirt/qemu. I have added the section:
> > 
> >     <serial type="file">
> >       <source path="/var/log/vm/vml.log"/>
> >       <target port="0"/>
> >     </serial>
> >   
> > into the /devices section.
> > 
> > That is I want the stdio to be streamed into the file /var/log/vm/vml.log at the host.
> > 
> > Then I run simple textual commands at the guest (ls, pwd and so on).
> 
> How are you getting into your guest to run those commands?  Did you
> connect to your guest's serial console, or is it in a gui window, or via
> an ssh session, or...?  Are you sure the commands you are executing have
> the guest's /dev/ttyS0 as their stdout?

Your xml is correct and I think Eric's suggestion is right: if I put
that <serial> snippet into a guest's XML and then echo "foo" >
/dev/ttyS0 in the guest, I see "foo" in the host vml.log.

> > But I do not see /var/log/vm/vml.log created at the host.
> 
> I'm not sure whether libvirt will pre-create the file, or whether it
> insists that the file already exists. Maybe others can chime in.  I know
> Dave Allan has done some work with python scripts that faithfully
> capture all text output to the guest's serial console, although I don't
> have a handy link to that sample script.

The example script is consolecallback.py[1] but it really deals more
with auto connecting to a serial console when a VM is booted than with
doing anything special with the output, although it's useful if you
have a VM going up and down and you want all its console output.

Dave

[1]
http://libvirt.org/git/?p=libvirt-python.git;a=blob;f=examples/consolecallback.py;hb=HEAD

> -- 
> Eric Blake   eblake redhat com    +1-919-301-3266
> Libvirt virtualization library http://libvirt.org
> 





More information about the libvirt-users mailing list