3

Как сделать терминальные приложения невосприимчивыми к закрытию эмулятора терминала, но при этом использовать все функции виртуального терминала?

\ Начать {UPDATE}

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

\ Конец {UPDATE}

Я вижу, что это должно быть что-то вроде экрана, но без эмуляции терминала VT100, что-то, что будет просто применяться независимо от того, что приложение делает с терминалом "Terminal Proxy" (например, вывод чего-либо в stdout/stderr или использование stty для установки параметров терминала) для терминала этот прокси работает.

// Я знаю о включении screen и altscreen on , но он делает либо это (screen с TERM=screen):

экран с TERM = экран

или это (screen с TERM=rxvt-unicode):

экран с TERM = rxvt-Unicode

пока я хочу это (rxvt-unicode без screen):

rxvt-юникода

Я понял, что все выглядит хорошо, если я скомпилирую rxvt-unicode с USE=-xterm-color (фактически vim выглядит как на втором изображении даже без экрана, если я добавлю этот флаг USE) и установил TERM=screen-256color , но Мне не нравится этот обходной путь, потому что он фактически меняет цвета, и я не могу быть уверен, что он всегда изменит их только так:

экран с TERM = screen-256color

4 ответа4

3

Есть также программа под названием "dtach", которая делает это, не накладывая свой собственный экранный буфер. (Я знаю, что ответ довольно поздно, но, тем не менее, я публикую его для тех, кто гуглит и наткнулся на страницу)

0

Да, я могу запустить оболочку внутри экрана, но я не хочу, чтобы она оставалась активной, если не запущена какая-либо другая программа.

Одним из решений было бы запустить оболочку с экрана (как вы сказали, что вы не хотели), но затем добавить задание Cron, которое будет запускаться каждые 10 минут, чтобы проверить, закрываются ли сеансы экрана.

Если все сеансы экрана отключены, и никакие программы, кроме оболочек, не запускаются из них, вы можете закрыть их.

0

Экран можно использовать для непосредственного запуска приложения, поэтому при выходе из экрана приложение будет закрыто:

screen <yourprog>

См. 5-й абзац экранной справочной страницы для более подробной информации.

0

Используйте сакуру. Он запрашивает, пытаетесь ли вы закрыть vterm с запущенной программой.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .