diff options
author | Claudio Zumbo <claudioz@fb.com> | 2019-10-08 15:04:29 -0700 |
---|---|---|
committer | Claudio Zumbo <claudioz@fb.com> | 2019-10-16 09:44:20 -0700 |
commit | 10e72727eeeeb1a495303ec406fa8d1e1a83dc6e (patch) | |
tree | 2239ed2323df64487e8b421dff8e35951065cbbc /src/core | |
parent | 7891aa00407d12dace6a4eee68dbe71df54dc23c (diff) | |
download | systemd-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.c | 5 |
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; } |