[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