summaryrefslogtreecommitdiff
path: root/src/core
diff options
context:
space:
mode:
authorClaudio Zumbo <claudioz@fb.com>2019-10-08 15:04:29 -0700
committerClaudio Zumbo <claudioz@fb.com>2019-10-16 09:44:20 -0700
commit10e72727eeeeb1a495303ec406fa8d1e1a83dc6e (patch)
tree2239ed2323df64487e8b421dff8e35951065cbbc /src/core
parent7891aa00407d12dace6a4eee68dbe71df54dc23c (diff)
downloadsystemd-10e72727eeeeb1a495303ec406fa8d1e1a83dc6e.tar.gz
Allow restart for oneshot units
Picked up from https://github.com/systemd/systemd/pull/7474 , so coauthored by @robermorales.
Diffstat (limited to 'src/core')
-rw-r--r--src/core/service.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/src/core/service.c b/src/core/service.c
index ada25e634a..45b5f4b6a0 100644
--- a/src/core/service.c
+++ b/src/core/service.c
@@ -577,8 +577,9 @@ static int service_verify(Service *s) {
return -ENOEXEC;
}
- if (s->type == SERVICE_ONESHOT && s->restart != SERVICE_RESTART_NO) {
- log_unit_error(UNIT(s), "Service has Restart= setting other than no, which isn't allowed for Type=oneshot services. Refusing.");
+ if (s->type == SERVICE_ONESHOT
+ && !IN_SET(s->restart, SERVICE_RESTART_NO, SERVICE_RESTART_ON_FAILURE, SERVICE_RESTART_ON_ABNORMAL, SERVICE_RESTART_ON_WATCHDOG, SERVICE_RESTART_ON_ABORT)) {
+ log_unit_error(UNIT(s), "Service has Restart= set to either always or on-success, which isn't allowed for Type=oneshot services. Refusing.");
return -ENOEXEC;
}