1

Я пытаюсь создать сценарий появления окон GNU/screen с помощью команд вида screen <CMD> .

По какой-то причине, когда я запускаю GNU/screen (вручную), оболочка, которую он запускает в окне 0 (/bin/bash), не содержит переменную окружения $STY . Без таких команд, как screen vim запускается сеанс вложенного экрана, а не другое окно, как я хочу.

Мое окружение несколько необычно. Вот как я в конечном итоге в этом:

ssh robm@somehost
sudo su sharedaccount
script /dev/null
screen

Шаг script /dev/null существует, потому что устройство TTY, выделенное для пользователя robm не может быть доступно для пользователя sharedaccount . Команда script выделяет новый TTY, принадлежащий пользователю, который его вызвал, что решает эту проблему.

Если я пропущу шаги sudo и script , GNU/screen прекрасно подойдет для установки $STY . Другими словами, это работает просто отлично:

ssh robm@somehost
screen

Предположительно что-то в sudo и script мешает работе с screen , но я не знаю, что.

2 ответа2

2

Гах, это была sharedaccount сценария инициализации SHELL. Он вызывал exec env -i ... для создания новой оболочки без лишних усилий из среды исходного пользователя.

Извините, если я впустую потратил время.

0

Я думаю, что вы могли бы пропустить шаг script /dev/null и исправить проблему, если вы изменили свой вызов на su , введя его с тире, например: sudo su - sharedaccount . Это установит все ваши переменные окружения в основном так, как они будут, если вы действительно войдете в систему как sharedaccount .

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