• Michele Tartara's avatar
    Perform proper cleanup on termination of Haskell daemons · 80adbbe1
    Michele Tartara authored
    
    
    Haskell deamons did not perform proper cleanup at termination. There was no code
    for removing the pid file, and the code in LuxiD for removing the unix socket
    file was not working, because it is implemented with a "finally" statement,
    which is executed only when the main loop of the daemon is exited (either
    normally, or through an exception), but not when it is terminated by a SIGTERM.
    
    This commit adds a proper handler for SIGTERM, which transforms it into a
    successful termination exception. This allows both the newly added cleanup code
    for pid files and the unmodified cleanup code for unix sockets to be executed.
    
    Fixes Issue 581 and 582.
    Signed-off-by: default avatarMichele Tartara <mtartara@google.com>
    Reviewed-by: default avatarKlaus Aehlig <aehlig@google.com>
    80adbbe1
Daemon.hs 16.2 KB