diff options
author | Lennart Poettering <lennart@poettering.net> | 2011-03-29 23:31:38 +0200 |
---|---|---|
committer | Lennart Poettering <lennart@poettering.net> | 2011-03-29 23:31:38 +0200 |
commit | cd25cce98f5cc930202212c3c9c13605c09698b4 (patch) | |
tree | 7c186394fed8a04e5ad8fef37eda670282f2a08e /src/service.c | |
parent | cgroup: explain when we cannot initialize the cgroup stuff (diff) | |
download | systemd-cd25cce98f5cc930202212c3c9c13605c09698b4.tar.xz systemd-cd25cce98f5cc930202212c3c9c13605c09698b4.zip |
exec: drop process group kill mode since it has little use and confuses the user
Diffstat (limited to 'src/service.c')
-rw-r--r-- | src/service.c | 15 |
1 files changed, 5 insertions, 10 deletions
diff --git a/src/service.c b/src/service.c index 1735a96c80..fd3a9c94e7 100644 --- a/src/service.c +++ b/src/service.c @@ -828,7 +828,7 @@ static int service_load_sysv_path(Service *s, const char *path) { s->exec_context.std_output = (s->meta.manager->sysv_console || s->exec_context.std_input == EXEC_INPUT_TTY) ? EXEC_OUTPUT_TTY : s->meta.manager->default_std_output; - s->exec_context.kill_mode = KILL_PROCESS_GROUP; + s->exec_context.kill_mode = KILL_PROCESS; /* We use the long description only if * no short description is set. */ @@ -1838,19 +1838,14 @@ static void service_enter_signal(Service *s, ServiceState state, bool success) { int sig = (state == SERVICE_STOP_SIGTERM || state == SERVICE_FINAL_SIGTERM) ? s->exec_context.kill_signal : SIGKILL; if (s->main_pid > 0) { - if (kill_and_sigcont(s->exec_context.kill_mode == KILL_PROCESS_GROUP ? - -s->main_pid : - s->main_pid, sig) < 0 && errno != ESRCH) - + if (kill_and_sigcont(s->main_pid, sig) < 0 && errno != ESRCH) log_warning("Failed to kill main process %li: %m", (long) s->main_pid); else wait_for_exit = true; } if (s->control_pid > 0) { - if (kill_and_sigcont(s->exec_context.kill_mode == KILL_PROCESS_GROUP ? - -s->control_pid : - s->control_pid, sig) < 0 && errno != ESRCH) + if (kill_and_sigcont(s->control_pid, sig) < 0 && errno != ESRCH) log_warning("Failed to kill control process %li: %m", (long) s->control_pid); else @@ -3212,11 +3207,11 @@ static int service_kill(Unit *u, KillWho who, KillMode mode, int signo, DBusErro } if (s->control_pid > 0) - if (kill(mode == KILL_PROCESS_GROUP ? -s->control_pid : s->control_pid, signo) < 0) + if (kill(s->control_pid, signo) < 0) r = -errno; if (s->main_pid > 0) - if (kill(mode == KILL_PROCESS_GROUP ? -s->main_pid : s->main_pid, signo) < 0) + if (kill(s->main_pid, signo) < 0) r = -errno; if (mode == KILL_CONTROL_GROUP) { |