Merge pull request #1236 from ykrivopalov/fix_complex_status_command

swaybar: Group child processes for signalling
master
Drew DeVault 8 years ago committed by GitHub
commit 16e20ec251

@ -34,6 +34,7 @@ static void spawn_status_cmd_proc(struct bar *bar) {
close(pipefd[0]); close(pipefd[0]);
dup2(pipefd[1], STDOUT_FILENO); dup2(pipefd[1], STDOUT_FILENO);
close(pipefd[1]); close(pipefd[1]);
setpgid(bar->status_command_pid, 0);
char *const cmd[] = { char *const cmd[] = {
"sh", "sh",
"-c", "-c",
@ -274,7 +275,7 @@ static void free_outputs(list_t *outputs) {
static void terminate_status_command(pid_t pid) { static void terminate_status_command(pid_t pid) {
if (pid) { if (pid) {
// terminate status_command process // terminate status_command process
int ret = kill(pid, SIGTERM); int ret = killpg(pid, SIGTERM);
if (ret != 0) { if (ret != 0) {
sway_log(L_ERROR, "Unable to terminate status_command [pid: %d]", pid); sway_log(L_ERROR, "Unable to terminate status_command [pid: %d]", pid);
} else { } else {

Loading…
Cancel
Save