[systemd-devel] [PATCH] core: allow Type=oneshot services to have ExecReload

Mantas Mikulėnas grawity at gmail.com
Wed Oct 10 10:18:42 PDT 2012


Use cases:

 * iptables.service – atomically reload rules without having to flush
   them beforehand (which may leave the system insecure if reload fails)

 * rpc-nfsd.service – reexport filesystems after /etc/exports update
   without completely stopping and restarting nfsd

(In both cases, the actual service is provided by a kernel module and
does not have any associated user-space processes, thus Type=oneshot.)
---
 src/core/service.c | 6 ------
 1 file changed, 6 deletions(-)

diff --git a/src/core/service.c b/src/core/service.c
index 8d315c1..69c7150 100644
--- a/src/core/service.c
+++ b/src/core/service.c
@@ -1161,12 +1161,6 @@ static int service_verify(Service *s) {
                 return -EINVAL;
         }
 
-        if (s->type == SERVICE_ONESHOT &&
-            s->exec_command[SERVICE_EXEC_RELOAD]) {
-                log_error("%s has an ExecReload setting, which is not allowed for Type=oneshot services. Refusing.", UNIT(s)->id);
-                return -EINVAL;
-        }
-
         if (s->type == SERVICE_DBUS && !s->bus_name) {
                 log_error("%s is of type D-Bus but no D-Bus service name has been specified. Refusing.", UNIT(s)->id);
                 return -EINVAL;
-- 
1.7.12.2



More information about the systemd-devel mailing list