Можно ли как-то проверить, сейчас я в сеансе экрана? Мне нужно, чтобы определить, будет ли нажатие Ctrl + D отключить меня от сервера или просто закрыть текущий экран. Благодарю.
75
Можно ли как-то проверить, сейчас я в сеансе экрана? Мне нужно, чтобы определить, будет ли нажатие Ctrl + D отключить меня от сервера или просто закрыть текущий экран. Благодарю.
Вы можете посмотреть на $STY
переменную (переменная, установленная экранной командой ). Если это не "", то вы находитесь в сеансе экрана.
Я на экране
$ echo $STY
29624.pts-1.iain-10-04
$
Я не на экране
$ echo $STY
$
if test -n "$STY"; then printf "This is a screen session named '$STY'.\n"; else printf "This is NOT a screen session.\n"; fi
Вы можете посмотреть на переменную $ TERM.
echo $TERM
Если это
screen
сеанс, термин «переменная» должен возвращать «экран».Ctrl-a -d (для выхода из экрана)
Также проверьте: https://stackoverflow.com/questions/3472287/how-do-you-tell-if-the-current-terminal-session-is-in-gnu-screen
источник
"$TERM" = "screen"
кажется, сохраняется при входе вsudo
среду, в отличие от$STY
опции.Если вы не изменили привязки клавиш по умолчанию, вы можете сделать Ctrl+ a-> Ctrl+ t, который покажет время, если вы находитесь на экране. Это будет работать, даже если у вас есть ssh: d где-то еще, в отличие от других предложений.
источник
Команда
caption
в~/.screenrc
является хорошим способом дифференцировать сеанс экрана.Я лично использую это:
Это добавляет строку, как эта внизу экрана:
Первая часть (имя системы + загрузка) - зеленым, а дата - розовым. Полезно и трудно пропустить!
источник
Я нашел другое решение:
измените ваш
.screenrc
, так что мой сеанс экрана выглядит совершенно иначе, чем обычный терминал.источник
.screenrc
файл примера .просматривать ваши сеансы и
восстановить соединение с отключенным, если оно отключено.
восстановить соединение с отключенным.
источник
Сделать а
screen -ls
. Это собирается явно указатьAttached
противDetached
статуса.Пример прилагается:
Пример отделен:
источник