Skip to content
  • David Ward's avatar
    service: fix auto-restart handling in service_stop() · f0c7b229
    David Ward authored
    When service_stop() handles a service in the SERVICE_AUTO_RESTART state,
    it calls service_set_state() to transition it to the SERVICE_DEAD state.
    However if the service failed, it should transition it to SERVICE_FAILED
    instead, which will trigger its OnFailure units. To achieve this, we now
    call service_enter_dead() in place of service_set_state(), which will
    transition the service to either SERVICE_DEAD or SERVICE_FAILED as is
    appropriate.
    
    Also, some misleading comments are adjusted: service_stop() is not only
    called on a user request, but also during an automatic restart in order
    to handle dependencies.
    
    Fixes: https://bugs.freedesktop.org/show_bug.cgi?id=45511
    f0c7b229