tmux segfaults на ключе отправки после обновления до 2.9a

Как указано , вы не можете использовать psв несуществующем -процессе.

Если у вас bashподдерживает ассоциативные массивы:

declare -A jobinfo

# collect job information
joblist=( $(jobs -p) )
for pid in "${joblist[@]}"; do
    jobinfo["$pid"]="$( ps -p "$pid" -o args= )"
done

# later...

# wait for jobs
err=0
for pid in "${joblist[@]}"; do
    if ! { wait "$pid" || ! (( code=$? )); }; then
        printf 'Got non-zero exit status (%d) from PID %d: %s\n' \
            "$code" "$pid" "${jobinfo[$pid]}"
        err=1
    fi
done

# exit 0 if all was good, exit 1 otherwise
exit "$err"

Здесь я собираю все необходимые данные, прежде чем начать ждать завершения работы. Я также жду завершения всех заданий, чтобы пользователь получил информацию не только о первом неудачном задании.


Без использования ассоциативных массивов (должно работать по умолчанию bashв macOS):

# collect job information
joblist=( $(jobs -p) )
for pid in "${joblist[@]}"; do
    jobinfo+=( "$( ps -p "$pid" -o args= )" )
done

# later...

err=0
i=0
for pid in "${joblist[@]}"; do
    if ! { wait "$pid" || ! (( code=$? )); }; then
        printf 'Got non-zero exit status (%d) from PID %d: %s\n' \
            "$code" "$pid" "${jobinfo[$i]}"
        err=1
    fi

    i=$(( i + 1 ))
done

exit "$err"

0
13.03.2020, 11:21
2 ответа

Если я заменю ваши скрипты "./l *" на "sleep 10", скрипт не вылетит с tmux 3.1 -rc, так что либо это ошибка в 2.9a, либо проблема в один из ваших скриптов.

Разумеется, скрипт тоже не работает -нельзя смешивать new -tи -n. Вы имеете в виду -sвместо -t? И вам, вероятно, нужно добавить -d, иначе остальная часть скрипта не запустится. Также ваши номера панелей неверны -вы разделяете только один раз, но затем нацеливаете панели 1 и 2, когда существуют только 0 и 1. Поэтому я подозреваю, что это не тот сценарий, который вы на самом деле используете.

В любом случае tmux 2.9a больше не поддерживается, поэтому лучше всего собрать tmux 3.0a или 3.1 -rc и посмотреть, сохраняется ли проблема. Если это так, вы можете открыть проблему по адресу https://github.com/tmux/tmux/issues, желательно со сценарием, который вы действительно используете, и некоторыми файлами журнала tmux.

0
28.04.2021, 23:20

Это ошибка в tmux.

Проблема отслеживается здесьhttps://bugs.launchpad.net/ubuntu/+source/tmux/+bug/1847484и ссылка на нее здесьhttps://github.com/tmux/tmux/issues/1980

Исправление имеет низкий приоритет, так как это проблема «плохой конфигурации», поэтому оно все еще существует по крайней мере в 3.0 -rc5.

В основном это проблема:

So, the crash seems to happen when sending keystrokes to a frame that is still showing error messages from parsing the configuration.

Таким образом, вам необходимо убедиться, что у вас есть правильный tmuxфайл конфигурации, который не вызывает ошибок, например

.tmux.conf:33: invalid option: pane-border-fg
0
28.04.2021, 23:20

Теги

Похожие вопросы