Использовать экран GNU как логин "shell"
Каков наилучший способ автоматического запуска экрана при открытии новой оболочки, используя логин, xterm или что-то еще?
Я вижу, что наиболее распространенная рекомендация состоит в том, чтобы поставить exec screen в файле rc или login / profile вашей обычной оболочки, но, например, для tcsh, оболочки входа в систему запускаются.login last, а оболочки, не входящие в систему, читают.cshrc last. Если я поставлю exec screen в.cshrc оболочка входа не будет источником файла.login, и если я добавлю его в.login, оболочка без входа в систему не будет работать на экране. Я предполагаю, что есть аналогичные проблемы с другими оболочками.
3 ответа
Одним из способов является:
# 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)
Старый вопрос, но поиск в Google по той же причине привел меня сюда, так что вот ответ для всех, кто наткнулся на эту страницу.
Лучшая вещь, которую я нашел до сих пор, это Бёбу, если она есть в вашем дистрибутиве. Поставляется с возможностью запуска при входе в систему и управления несколькими экранами одновременно.
Вы можете отсоединиться и выйти из одного места, а затем войти в тот же сеанс в другом месте.
Я считаю, что экран отлично подходит для запуска серверных процессов, но byobu отлично подходит для повседневных дел.
Обычно я делаю это в моем ~/.screenrc
defshell -bash # the dash makes it a login shell
Как насчет использования chsh:
chsh /usr/bin/screen
Это устанавливает оболочку входа по умолчанию в /etc/passwd. (вы могли бы это там тоже)