Использовать экран GNU в качестве «оболочки» для входа

22

Каков наилучший способ автоматического запуска экрана при открытии новой оболочки, используя логин, xterm или что-то еще?

Я вижу, что наиболее распространенная рекомендация - помещать exec screenв вашу обычную оболочку файл rc или login / profile, но, например, для tcsh, оболочки входа в систему запускаются .login last, в то время как оболочки, не входящие в систему, читают .cshrc last. Если я exec screenдобавлю .cshrc, оболочка входа не будет источником файла .login, а если я добавлю его в .login, экран не войдет в экран. Я предполагаю, что есть аналогичные проблемы с другими оболочками.

wfaulk
источник
1
Это не отвечает на вопрос, но стоит упомянуть: tmux является революционным шагом вперед по сравнению с экраном и пытается быть ближе к клавиатуре, совместимой с экраном. На этой странице описано, как запустить его автоматически из .bashrc.
Даташаман

Ответы:

19

Одним из способов является:

# if $STY is not set...
if [ -z "$STY" ]; then
    exec screen -ARR
fi

Обратите внимание, что это написано для bash, но должно быть похоже на cshтоже. Поместите это, чтобы .cshrcбыть выполненным для всех раковин.


Другой способ: вы можете просто установить в screenкачестве своей оболочки входа в систему/etc/passwd и добавить эту строку к вашей ~/.screenrc: (Исправьте путь, конечно.)

defshell / bin / csh

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

( Изменить: не забудьте добавить экран /etc/shells)

grawity
источник
1
Раньше я не знал о переменной STY, и, посмотрев ее в руководстве по экрану, я также обнаружил, что вы можете выполнить экран со встроенным экраном для запуска команд в новом окне (например, «screen vi» откроет vi в новое окно, без управляющей оболочки). Кстати, для csh вы бы поместили его в файл .login, а не в .cshrc, вы не хотите, чтобы он работал для «всех» оболочек. То же самое относится к bash, поместите его в .profile или .bash_login, а не в .bashrc.
Харидсв
4

Старый вопрос, но поиск в Google по той же причине привел меня сюда, так что вот ответ для всех, кто наткнулся на эту страницу.

Лучшая вещь, которую я нашел до сих пор, это Бёбу, если она есть в вашем дистрибутиве. Поставляется с возможностью запуска при входе в систему и управления несколькими экранами одновременно.

Вы можете отсоединиться и выйти из одного места, а затем войти в тот же сеанс в другом месте.

Я считаю, что экран отлично подходит для запуска серверных процессов, но byobu отлично подходит для повседневных дел.

solbot
источник
-2

Как насчет использования chsh:

chsh /usr/bin/screen

Это устанавливает оболочку входа по умолчанию в / etc / passwd. (вы могли бы это там тоже)

mrossi
источник
Затем с вашей учетной записью становится трудно что-либо делать, кроме входа в систему. Кроме того, ваш системный администратор, вероятно, не имеет экрана в / etc / shells. Также смотрите принятый ответ.
wfaulk