6

socat - exec:'bash -li',pty,stderr,ctty -> bash: no job control in this shell

Какие варианты я должен использовать, чтобы получить полноценную оболочку, как я получаю с ssh/sshd?

Я хочу иметь возможность подключить оболочку ко всему, что может обработать socat (SOCKS 5, UDP, OpenSSL), а также иметь красивую оболочку, которая правильно интерпретирует все клавиши, различные Ctrl+C/Ctrl+Z, завершение табуляции, вверх /клавиши вниз (с удаленной историей).

  • Обновление 1: найдена опция "setsid" socat. Это исправляет "нет контроля работы". Сейчас пытаюсь исправить Ctrl+D.

  • Обновление 2:

    файл socat: `tty`, raw, echo = 0 exec: 'bash -li', pty, stderr, setsid, sigint, sane
    , Не хорошо обрабатывает Ctrl+D/Ctrl+Z/Ctrl+C , я могу запустить Vim внутри него, удаленная история в порядке.

1 ответ1

4

Проблемы были:

  1. Отсутствует опция "сетсид" в правой части соцата. Это приведет к тому, что bash не будет контролером сессии.
  2. Используя «-» в левой части соката. Правильно, `tty`, raw, echo = 0.

Теперь у меня есть оболочка для всех вещей, которые может поддерживать socat, и я могу запустить vim/screen/ssh, прервать ping с помощью ^ C, завершить cat с помощью ^ D и сделать все остальное в этой оболочке.

Если bash неправильно разбивает строки и / или vim слишком мал или слишком велик, вы можете легко использовать термины размера .

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