summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFurkan Sahin <furkan-dev@proton.me>2017-06-12 18:03:25 -0400
committerFurkan Sahin <furkan-dev@proton.me>2017-06-12 18:03:25 -0400
commitc2e225772e4362a9fb6c68736b451abde6f2e3b6 (patch)
treeff1595433f3082b77637b0ba3450e7a2e77ac7f7
parent21ad03365658c36a8d8d94b0c30fa07a42859e4f (diff)
parent144b794cf4232d9c7940551702bf43fd2d3b7d04 (diff)
Merge pull request #1236 from ykrivopalov/fix_complex_status_command
swaybar: Group child processes for signalling
-rw-r--r--swaybar/bar.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/swaybar/bar.c b/swaybar/bar.c
index abde1cc9..5ed0d266 100644
--- a/swaybar/bar.c
+++ b/swaybar/bar.c
@@ -34,6 +34,7 @@ static void spawn_status_cmd_proc(struct bar *bar) {
close(pipefd[0]);
dup2(pipefd[1], STDOUT_FILENO);
close(pipefd[1]);
+ setpgid(bar->status_command_pid, 0);
char *const cmd[] = {
"sh",
"-c",
@@ -274,7 +275,7 @@ static void free_outputs(list_t *outputs) {
static void terminate_status_command(pid_t pid) {
if (pid) {
// terminate status_command process
- int ret = kill(pid, SIGTERM);
+ int ret = killpg(pid, SIGTERM);
if (ret != 0) {
sway_log(L_ERROR, "Unable to terminate status_command [pid: %d]", pid);
} else {