I have a Python application that I use to create KVM based VMs
programmatically. When I run the program interactively (from a command
line), everything works fine. However, when I run it through supervisord,
things do work as expected.

The code I use in my Python program to launch virt-install is
straightforward:

    cmd = 'virt-install --connect=qemu:///system --name "vmtest" ...'
    cmd = shlex.split(cmd)
    process = subprocess.Popen(cmd, stdout=subprocess.PIPE,
stderr=subprocess.STDOUT)

After calling Popen, my Python code monitors the process waiting for it to
exit. The virt-install program that I'm running here via Popen is itself a
Python program, not that it really matters. When it runs properly, it ends
up spawning two processes in addition to the main virt-install process. A
ps list usually looks something like this:

root     21968  0.3  0.1 300816 20996 pts/3    S+   10:57   0:00
/usr/bin/python -tt /usr/sbin/virt-install ...
qemu     22018  9.0  5.2 4477800 860856 ?      Sl   10:57   0:16
/usr/libexec/qemu-kvm -S -M rhel6.3.0 ...
root     22041  0.0  0.0 310184  5712 pts/3    Sl+  10:57   0:00
/usr/bin/virsh --connect qemu:///system console 33

The VM creation process is designed to run unattended, and like I said when
I run my Python app manually everything works fine. However, when I run it
through supervisord, the virsh process exits for some reason, and then the
main virt-install process terminates, but curiously the qemu-kvm process
continues.

I have been unable to determine why this is happening. Can anyone offer any
suggestions what might be going on?
_______________________________________________
Supervisor-users mailing list
[email protected]
http://lists.supervisord.org/mailman/listinfo/supervisor-users

Reply via email to