Comment 1 for bug 1228210

Revision history for this message
Robie Basak (racb) wrote : Re: libvirt-bin upstart job considers service "started" when it is not

Root cause analysis:

libvirtd creates and starts listening on the socket after forking to daemonize. However, it also ensures that the original process only exits after the daemon process has started to listen on the socket (using a pipe to signal readiness internally).

In the Sys V init case, this means that the init.d script would not exit until the daemon is ready.

In the Upstart case, it seems to me that Upstart's documented "expect daemon" behaviour means that Upstart treats the daemon as started as soon as the second (daemon) fork occurs, and there is no provision to wait() on the original process.