# shellcheck shell=dash

___x_cmd_kill___recursive(){
    local signal=TERM #KILL
    case "$1" in
        -s) signal="$2"; shift 2 ;;
    esac

    local ppid="$1"
    local pid=
    kill -0 "$ppid" 2>/dev/null || return 0
    ___x_cmd ps --child "$ppid" | while read -r pid; do
        kill -0 "$pid" 2>/dev/null || continue
        kill -s "$signal" "$pid" 2>/dev/null || true
    done
    kill -s "$signal" "$ppid" 2>/dev/null || true
}
