• Iustin Pop's avatar
    Implement forking/master role checking in masterd · c1f2901b
    Iustin Pop authored
    This patch adds checks for the master role and daemonize support to
    ganeti-masterd.
    
    The patch modifies the startup/shutdown of the server because:
      - we want bind()/listen() to the master socket to occur before forking
        so that we can return a correct exit code and write messages to
        stderr
      - but we want thread startup to occur after fork(), otherwise python
        threading gets confused
    
    The patch also has some small cleanups:
      - remove the unix socket after closing it, so we don't need to remove
        it manually
      - instead of just telling the threads to terminate via the new_queue,
        we also join() them so that the logs show what thread clinging to
        life
      - the daemon logs to its own logfile now
      - there is command line parameter support :)
    
    Reviewed-by: imsnah
    c1f2901b