[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]

Re: [libvirt] [PATCH] daemon: Modify init script to check for libvirtd managed with upstart

On 09/21/2011 01:17 PM, Daniel P. Berrange wrote:
On Wed, Sep 21, 2011 at 12:46:33PM +0200, Peter Krempa wrote:
On some systems init scripts are installed along with upstart . This may
cause trouble if user tries to restart/stop a instance of libvirtd
managed with upstart with init script.

This patch adds check for a started libvirtd managed by upstart and
fails the init script.

[root localhost ~]# initctl status libvirtd
libvirtd start/running, process 3001
[root localhost ~]# service libvirtd restart
Stopping libvirtd daemon: error: libvirtd is managed by upstart and
started, use initctl instead

If libvirtd is not managed by upstart or is stopped, init script works
normaly and allows the user to manage the service.

  daemon/libvirtd.init.in |   18 ++++++++++++++++++
  1 files changed, 18 insertions(+), 0 deletions(-)

  - Hosts should not have both the SysV initscript&  upstart script
    installed at the same time
Well, they should not, but they do. And vdsm causes that upstart
is used for libvirt even if rest of the system uses SysV.

Vdsm requires that libvirtd is restarted in case of a crash/quit and
abuses upstart and his "respawn" stanza.
  - Even if both are installed together, there is no reason why a
    libvirtd started by upstart cannot be stopped be SysV init and
    vica-verca, since libvirtd puts its pidfile in the same place
    regardless of how it is launched.
Because the upstart script states that the libvirtd process should respawn
as soon as it exits, it's not possible for a SysV script to terminate libvirtd. Stop operation of the SysV script kills the libvirtd process and soon after that
it's restarted again by upstart as configured.

Another way aroun this would be to detect if libvirtd is managable via
upstart at the beginning of the SysV script and hand control over to
upstart if this is the case.



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]