[Date Prev][Date Next] [Thread Prev][Thread Next]
[Thread Index]
[Date Index]
[Author Index]
Re: [libvirt] [PATCH 2/5] daemonize qemu processes
- From: Daniel Veillard <veillard redhat com>
- To: "Daniel P. Berrange" <berrange redhat com>
- Cc: libvir-list redhat com, Guido Günther <agx sigxcpu org>
- Subject: Re: [libvirt] [PATCH 2/5] daemonize qemu processes
- Date: Mon, 15 Dec 2008 14:22:42 +0100
On Mon, Dec 15, 2008 at 11:21:20AM +0000, Daniel P. Berrange wrote:
> On Fri, Dec 12, 2008 at 07:26:32PM +0100, Guido G?nther wrote:
> > + if (kill(vm->pid, SIGTERM) < 0)
> > + qemudLog(QEMUD_ERROR, _("Failed to send SIGTERM to %s (%d): %s\n"),
> > + vm->def->name, vm->pid, strerror(errno));
>
> We should add a guard around all the kill() statements for
>
> if (vm->pid > 1)
> kill..
>
> One of the bugs I found when doing the LXC/UML drivers is that when relying
> on an external PID file, some things can go wrong in unexpected ways that
> just don't happen when getting the PID straight back from fork. This often
> ended up with vm->pid being -1, 0 with horrific results -
>
> "If pid equals -1, then sig is sent to every process for which the calling
> process has permission to send signals, except for process 1 (init)"
>
> Yes, I killed every single process on my dev machine several times before
> discovering this isues :-)
This call for an utility function
int virKillProcess(pid_t pid, int sig)
call checking for this, could also help on debugging/logging
Daniel
--
Daniel Veillard | libxml Gnome XML XSLT toolkit http://xmlsoft.org/
daniel veillard com | Rpmfind RPM search engine http://rpmfind.net/
http://veillard.com/ | virtualization library http://libvirt.org/
[Date Prev][Date Next] [Thread Prev][Thread Next]
[Thread Index]
[Date Index]
[Author Index]