Есть ли способ предотвратить запуск программ на основе ncurses? - PullRequest
1 голос
/ 31 мая 2011

Привет, я создаю удаленный сервер оболочки, который взаимодействует между текстовым клиентом и виртуальной оболочкой.

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

Есть ли способ обнаружить программы на основе ncurses и запретить их запуск в моей специальной оболочке?

(сервер ruby, но подойдет любая системная команда)

1 Ответ

5 голосов
/ 31 мая 2011

Вы можете объявить возможности вашей оболочки, установив для переменной среды TERM правильное значение.Например, если ваша оболочка имеет те же возможности, что и терминал vt100, экспортируйте TERM в правильное значение, и такие программы, как vim, будут это учитывать.

Чтобы запустить vim в режиме vt100, попробуйте:

TERM=vt100 vim

Вы также можете попробовать:

export TERM=dumb

Хитрость заключается в том, чтобы найти терминал, который соответствует возможностям того, что вы создаете.Есть из чего выбирать.В моей системе (Arch Linux) это дает мне длинный список вариантов:

find /usr/share/terminfo

Вы можете найти спецификацию терминала, которая соответствует тому, что может обработать ваша программа.

В качестве альтернативыВы можете рассмотреть возможность реализации эмуляции терминала для ansi или vt100:

http://en.wikipedia.org/wiki/ANSI_escape_code

http://www.termsys.demon.co.uk/vtansi.htm

Удачи!

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