• D
    Make LXC container startup/shutdown/I/O more robust · 4e3117ae
    Daniel P. Berrange 提交于
    The current LXC I/O controller looks for HUP to detect
    when a guest has quit. This isn't reliable as during
    initial bootup it is possible that 'init' will close
    the console and let mingetty re-open it. The shutdown
    of containers was also flakey because it only killed
    the libvirt I/O controller and expected container
    processes to gracefully follow.
    
    Change the I/O controller such that when it see HUP
    or an I/O error, it uses kill($PID, 0) to see if the
    process has really quit.
    
    Change the container shutdown sequence to use the
    virCgroupKillPainfully function to ensure every
    really goes away
    
    This change makes the use of the 'cpu', 'devices'
    and 'memory' cgroups controllers compulsory with
    LXC
    
    * docs/drvlxc.html.in: Document that certain cgroups
      controllers are now mandatory
    * src/lxc/lxc_controller.c: Check if PID is still
      alive before quitting on I/O error/HUP
    * src/lxc/lxc_driver.c: Use virCgroupKillPainfully
    4e3117ae
lxc_driver.c 82.3 KB