summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorAnita Zhang <the.anitazha@gmail.com>2020-06-10 01:18:00 -0700
committerLennart Poettering <lennart@poettering.net>2020-06-10 17:12:55 +0200
commitbb9244781c6fc7608f7cac910269f8987b8adc01 (patch)
tree2630b820bf9736e62c07a76cf231b2bd1c828925 /src
parent6a881daf85b18798ca11ee3340b6585f65ffef1b (diff)
downloadsystemd-bb9244781c6fc7608f7cac910269f8987b8adc01.tar.gz
core: don't consider SERVICE_SKIP_CONDITION for abnormal or failure restarts
Fixes: #16115
Diffstat (limited to 'src')
-rw-r--r--src/core/service.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/src/core/service.c b/src/core/service.c
index 8b3fd2e5a4..3daf21296a 100644
--- a/src/core/service.c
+++ b/src/core/service.c
@@ -1703,10 +1703,10 @@ static bool service_shall_restart(Service *s, const char **reason) {
return s->result == SERVICE_SUCCESS;
case SERVICE_RESTART_ON_FAILURE:
- return s->result != SERVICE_SUCCESS;
+ return !IN_SET(s->result, SERVICE_SUCCESS, SERVICE_SKIP_CONDITION);
case SERVICE_RESTART_ON_ABNORMAL:
- return !IN_SET(s->result, SERVICE_SUCCESS, SERVICE_FAILURE_EXIT_CODE);
+ return !IN_SET(s->result, SERVICE_SUCCESS, SERVICE_FAILURE_EXIT_CODE, SERVICE_SKIP_CONDITION);
case SERVICE_RESTART_ON_WATCHDOG:
return s->result == SERVICE_FAILURE_WATCHDOG;