1) Оставил только один pw_stop_progress_bar, остальное дропнул.
PW_YAD_PID_PROGRESS_BAR_BLOCK используется одна переменная, все остальные пиды попадают в неё в качестве элементов массива
sleep был важен, добавил его $(sleep 0.02) и проверку на существование пида [[ -f /proc/$pid/exe ]] (то есть он не выйдет из цикла до того периода времени, пока пида не станет, то есть не убьет его
0.02 секунд ему достаточно, чтобы убиться. Дебажил, в цикл добавлял echo и смотреть сколько раз он его сделает, при 0.02 делает 1 раз, при 0.01 2 раза (то есть kill пропускает pid, но цикл заставляет его снова кильнуть), при 0.0000001 sleep, бывало и до 5-6 пропусков, но в итоге всё равно килял и выходил из цикла
То есть, если даже при 0.02 пропустит, то снова в цикл зайдёт, чтобы убить pid
p.s. был момент снова с этим pw_find_exe, то что бар не убился )))
1) Оставил только один pw_stop_progress_bar, остальное дропнул. PW_YAD_PID_PROGRESS_BAR_BLOCK используется одна переменная, все остальные пиды попадают в неё в качестве элементов массива sleep был важен, добавил его $(sleep 0.02) и проверку на существование пида [[ -f /proc/$pid/exe ]] (то есть он не выйдет из цикла до того периода времени, пока пида не станет, то есть не убьет его
0.02 секунд ему достаточно, чтобы убиться. Дебажил, в цикл добавлял echo и смотреть сколько раз он его сделает, при 0.02 делает 1 раз, при 0.01 2 раза (то есть kill пропускает pid, но цикл заставляет его снова кильнуть), при 0.0000001 sleep, бывало и до 5-6 пропусков, но в итоге всё равно килял и выходил из цикла То есть, если даже при 0.02 пропустит, то снова в цикл зайдёт, чтобы убить pid
p.s. был момент снова с этим pw_find_exe, то что бар не убился )))
2) Добавил --pulsate к --progress бару для yad