service: flush the start counter in "systemctl reset-failed"

This commit is contained in:
Lennart Poettering 2012-07-04 00:23:42 +02:00
parent 6ffd333786
commit 451b34cc1d
3 changed files with 18 additions and 1 deletions

View file

@ -768,7 +768,15 @@
however they may still be restarted
manually at a later point from which
point on the restart logic is again
activated.</para></listitem>
activated. Note that
<command>systemctl
reset-failed</command> will cause the
restart rate counter for a service to
be flushed, which is useful if the
administrator wants to manually start
a service and the start limit
interferes with
that.</para></listitem>
</varlistentry>
<varlistentry>

View file

@ -3655,6 +3655,8 @@ static void service_reset_failed(Unit *u) {
s->result = SERVICE_SUCCESS;
s->reload_result = SERVICE_SUCCESS;
RATELIMIT_RESET(s->start_limit);
}
static int service_kill(Unit *u, KillWho who, KillMode mode, int signo, DBusError *error) {

View file

@ -48,6 +48,13 @@ typedef struct RateLimit {
_r->begin = 0; \
} while (false)
#define RATELIMIT_RESET(v) \
do { \
RateLimit *_r = &(v); \
_r->num = 0; \
_r->begin = 0; \
} while (false)
bool ratelimit_test(RateLimit *r);
#endif