В основном то, что я хочу сделать, это что-то вроде этого:

screen -session-name = mydefaultscreen

и если «имя сеанса» mydefaultscreen не существует, оно создает его. если он уже существует, он присоединяется к нему.

Я знаю, что могу сделать экран -x $, так что здесь, но я хочу все это автоматически

Спасибо

2 ответа2

0

Вы используете инструменты GNU в системе Windows или речь идет о системах Linux? Я возьму на себя позже, но дайте мне знать, если я ошибаюсь.

Посмотрите справочные страницы для предложений по опциям "Переподключиться". Если мне не изменяет память, вы будете искать "-r" и "-R", и между ними есть разница. Мне понадобятся некоторые подробности о том, что вы испытываете, чтобы полностью описать способ "автоматического" выполнения того, что вы просили, но вкратце для этого может потребоваться небольшой сценарий. Это было бы для более сложного случая. Если у вас есть более простой сценарий использования и требования, то вы можете просто поместить одну или две строки в соответствующий хук оболочки (например, если вы используете оболочку bash, то .bash_profile, .bashrc, ... выполнит / оценит их содержимое в зависимости от по сценарию).

Вы часто теряете время или отрываетесь от своей сессии? Если это так, могут быть некоторые параметры SSH, которые тоже нужно настроить. То, что вы спрашиваете, выполнимо, мне просто нужно лучше понять параметры, под которые должно быть разработано решение.

0

В своем файле .bashrc вы можете проверить, установлен ли $SSH_CONNECTION (который описывает, вошел ли текущий пользователь через SSH), а TERM не "screen" (как в случае, если вы запускаете его из экрана), альтернативно проверьте значение $SHLVL (которое описывает уровень вложенных оболочек).

Что-то вроде следующего в вашем .bashrc должно сделать для автоматического запуска экрана, если вы входите через SSH:

if [ -n "${SSH_CONNECTION}" -a ${SHLVL} -eq 1 ]; then
    screen -RD
fi

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

   -d -r   Reattach a session and if necessary detach it first.
   -d -R   Reattach a session and if necessary detach or even create it first.
   -d -RR  Reattach a session and if necessary detach or create it. Use the first session if more than one session is available.
   -D -r   Reattach a session. If necessary detach and logout remotely first.
   -D -R   Attach  here and now. In detail this means: If a session is running, then reattach. If necessary detach and logout remotely first.  If it was not running create it and notify the user. This is the author's favorite.
   -D -RR  Attach here and now. Whatever that means, just do it.

Конечно, вы также можете установить экран в качестве оболочки для входа.

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