Я пытаюсь использовать 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.
Может кто-либо помогать объяснить, что продолжается здесь?Спасибо.
При повторном подключении к полноэкранному приложению, это приложение должно быть перерисовано. Экран хорош в том, чтобы понять, когда он снова присоединяется, и перерисовать сам себя - в общем, прослушивая SIGWINCH, который указывает на то, что размер терминала изменился. Она может иметь некоторые дополнительные функции для мониторинга своего терминала, что позволяет ей добиться успеха здесь, где ирси нет.
На основании последнего предложения в на странице советов ирси, вы должны быть в состоянии набрать /перерисовать
на ирси, чтобы перерисовать экран, или привязать это к ^L с помощью /привязать ^L перерисовать
.