Присоединение докера к процессу проклятий

Я пытаюсь использовать docker attach присоединить к основанному на проклятиях графическому процессу:

$ docker run --name irssi -it pandrew/irssi irssi

Когда Вы отсоединяетесь от этого использования процесса ^P^Q и повторное прикрепление с docker attach irssi похоже, что ничего не произошло. Но, процесс действительно повторно прикрепляет, потому что можно ввести команды, и медленно можно создать графический интерфейс назад путем инициирования перерисовок. Тем не менее, поведение процесса является странным после повторного прикрепления.

Однако, если Вы первоначально выполняете процесс внутри a screen, все хорошо работает:

$ docker run --name irssi -it ${PREVIOUS_IMAGE_PLUS_SCREEN} screen irssi

Можно отсоединить и повторно прикрепить от контейнера, и что-то об экране заставляет irssi сессию вести себя прекрасная. Кажется, что irssi имеет некоторую возможность проверить, чтобы видеть, "грязно" ли это, и перерисовывать экран: https://github.com/irssi/irssi/blob/master/src/fe-text/irssi.c#L123.

Может кто-либо помогать объяснить, что продолжается здесь?Спасибо.

0
задан 5 October 2014 в 18:15
1 ответ

При повторном подключении к полноэкранному приложению, это приложение должно быть перерисовано. Экран хорош в том, чтобы понять, когда он снова присоединяется, и перерисовать сам себя - в общем, прослушивая SIGWINCH, который указывает на то, что размер терминала изменился. Она может иметь некоторые дополнительные функции для мониторинга своего терминала, что позволяет ей добиться успеха здесь, где ирси нет.

На основании последнего предложения в на странице советов ирси, вы должны быть в состоянии набрать /перерисовать на ирси, чтобы перерисовать экран, или привязать это к ^L с помощью /привязать ^L перерисовать .

.
2
ответ дан 4 December 2019 в 13:55

Теги

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