diff options
author | Lennart Poettering <lennart@poettering.net> | 2014-01-29 13:49:54 +0100 |
---|---|---|
committer | Lennart Poettering <lennart@poettering.net> | 2014-01-29 13:49:54 +0100 |
commit | ebc2259da1d1579347b86fc2ebca9f96334b6f22 (patch) | |
tree | cb1476aad3e0650137ceb88d22225bbe1629c4b5 /src | |
parent | 58ea275a68cd242ad60161bcb7582614d1d89f13 (diff) |
service: allow KillMode=mixed in conjunction with PAMName=
Diffstat (limited to 'src')
-rw-r--r-- | src/core/service.c | 20 |
1 files changed, 7 insertions, 13 deletions
diff --git a/src/core/service.c b/src/core/service.c index d949f7a363..1ec2e51fc2 100644 --- a/src/core/service.c +++ b/src/core/service.c @@ -1092,37 +1092,31 @@ static int service_verify(Service *s) { return 0; if (!s->exec_command[SERVICE_EXEC_START]) { - log_error_unit(UNIT(s)->id, - "%s lacks ExecStart setting. Refusing.", UNIT(s)->id); + log_error_unit(UNIT(s)->id, "%s lacks ExecStart setting. Refusing.", UNIT(s)->id); return -EINVAL; } if (s->type != SERVICE_ONESHOT && s->exec_command[SERVICE_EXEC_START]->command_next) { - log_error_unit(UNIT(s)->id, - "%s has more than one ExecStart setting, which is only allowed for Type=oneshot services. Refusing.", UNIT(s)->id); + log_error_unit(UNIT(s)->id, "%s has more than one ExecStart setting, which is only allowed for Type=oneshot services. Refusing.", UNIT(s)->id); return -EINVAL; } if (s->type == SERVICE_ONESHOT && s->restart != SERVICE_RESTART_NO) { - log_error_unit(UNIT(s)->id, - "%s has Restart setting other than no, which isn't allowed for Type=oneshot services. Refusing.", UNIT(s)->id); + log_error_unit(UNIT(s)->id, "%s has Restart setting other than no, which isn't allowed for Type=oneshot services. Refusing.", UNIT(s)->id); return -EINVAL; } if (s->type == SERVICE_DBUS && !s->bus_name) { - log_error_unit(UNIT(s)->id, - "%s is of type D-Bus but no D-Bus service name has been specified. Refusing.", UNIT(s)->id); + log_error_unit(UNIT(s)->id, "%s is of type D-Bus but no D-Bus service name has been specified. Refusing.", UNIT(s)->id); return -EINVAL; } if (s->bus_name && s->type != SERVICE_DBUS) - log_warning_unit(UNIT(s)->id, - "%s has a D-Bus service name specified, but is not of type dbus. Ignoring.", UNIT(s)->id); + log_warning_unit(UNIT(s)->id, "%s has a D-Bus service name specified, but is not of type dbus. Ignoring.", UNIT(s)->id); - if (s->exec_context.pam_name && s->kill_context.kill_mode != KILL_CONTROL_GROUP) { - log_error_unit(UNIT(s)->id, - "%s has PAM enabled. Kill mode must be set to 'control-group'. Refusing.", UNIT(s)->id); + if (s->exec_context.pam_name && !(s->kill_context.kill_mode == KILL_CONTROL_GROUP || s->kill_context.kill_mode == KILL_MIXED)) { + log_error_unit(UNIT(s)->id, "%s has PAM enabled. Kill mode must be set to 'control-group' or 'mixed'. Refusing.", UNIT(s)->id); return -EINVAL; } |