From 3165987f7aedd4bc154e40c0a1fd8f088b772dae Mon Sep 17 00:00:00 2001 From: Erich Eckner Date: Fri, 8 Nov 2019 10:25:50 +0100 Subject: update-all.in: update pids list, exit when empty --- update-all.in | 24 ++++++++++++++++++++++-- 1 file changed, 22 insertions(+), 2 deletions(-) diff --git a/update-all.in b/update-all.in index 352fd9f..bb87ece 100644 --- a/update-all.in +++ b/update-all.in @@ -57,8 +57,28 @@ if [ -z "${DISPLAY}" ]; then ) fi -while kill -0 "${pids[@]}"; do - sleep 1 +while [ -n "${pids[*]}" ]; do + if [ -z "${DISPLAY}" ]; then + for pid in "${pids[@]}"; do + if ! kill -0 "${pid}" >/dev/null 2>&1; then + continue + fi + npids+=("${pid}") + screen -r "${pid}" + done + pids=("${npids[@]}") + else + sleep 1 + fi + pids=( + $( + for pid in "${pids[@]}"; do + if kill -0 "${pid}" >/dev/null 2>&1; then + printf '%s\n' "${pid}" + fi + done + ) + ) done ls "${tmp_dir}" \ -- cgit v1.2.3-54-g00ecf