commit bc35b6f44ab0def13601c4ebd836437c5dc0e360
parent 775adccfb4a3c36c6358a2a072f294f51faf9e40
Author: Matthew White <mehw.is.me@inventati.org>
Date: Wed, 17 Nov 2021 22:27:51 +0000
clipmenud: Fix killing background jobs when there are multiple
`jobs -p' should be read into an array, as it might contain more than
one job.
[cdown: squash, massage changelog, remove space between local/readarray]
Diffstat:
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/clipmenud b/clipmenud
@@ -88,12 +88,12 @@ kill_background_jobs() {
# While we usually _are_, there are no guarantees that we're the process
# group leader. As such, all we can do is look at the pending jobs. Bash
# avoids a subshell here, so the job list is in the right shell.
- local bg
- bg=$(jobs -p)
+ local -a bg
+ readarray -t bg < <(jobs -p)
# Don't log `kill' failures, since with KillMode=control-group, we're
# racing with init.
- [[ $bg ]] && kill -- "$bg" 2>/dev/null
+ (( ${#bg[@]} )) && kill -- "${bg[@]}" 2>/dev/null
}
if [[ $1 == --help ]] || [[ $1 == -h ]]; then