
Каждый раз, когда изменяется размер терминала, обычно bash
автоматически resize
, так что LINES
и COLUMNS
пересчитываются правильно. Но по какой-то причине это не работает в контейнере Docker, работающем bash
в интерактивном режиме.
shopt checkwinsize -s
У меня в bashrc
контейнере Docker (и я проверил, что он on
использует shopt
). То же самое с сеансом хоста bash
.
У меня на самом деле закончились идеи; shopt checkwinsize -s
это единственный метод, который я нашел, чтобы bash
автоматически оценивать resize
изменение размера окна.
решение1
Если ваша оболочка настроена на root, Docker может не успеть отправить ей сигналы, поскольку это нарушает границу привилегий. (Это проблема не только Docker).
Дальнейшее чтение:
- SIGWINCH присоединенные процессы #5736, упоминает эту
su
проблему. - СИГБЖД
- Docker прикрепляется к процессу curses