invoke_swaybar(): Set process group. Kill process group.

Fixes a bug where terminate_swaybar() did not terminate swaybar.
This commit is contained in:
Geoff Greer 2018-04-26 18:13:44 -07:00
parent 64e0731cc7
commit b9726afd48

View file

@ -17,7 +17,7 @@
static void terminate_swaybar(pid_t pid) { static void terminate_swaybar(pid_t pid) {
wlr_log(L_DEBUG, "Terminating swaybar %d", pid); wlr_log(L_DEBUG, "Terminating swaybar %d", pid);
int ret = kill(pid, SIGTERM); int ret = kill(-pid, SIGTERM);
if (ret != 0) { if (ret != 0) {
wlr_log_errno(L_ERROR, "Unable to terminate swaybar %d", pid); wlr_log_errno(L_ERROR, "Unable to terminate swaybar %d", pid);
} else { } else {
@ -163,6 +163,7 @@ void invoke_swaybar(struct bar_config *bar) {
bar->pid = fork(); bar->pid = fork();
if (bar->pid == 0) { if (bar->pid == 0) {
setpgid(0, 0);
close(filedes[0]); close(filedes[0]);
// run custom swaybar // run custom swaybar