Jawaban:
Anda dapat melihat $STY
variabel (variabel yang diatur oleh perintah layar ). Jika bukan "" maka Anda berada di sesi layar.
Saya di layar
$ echo $STY
29624.pts-1.iain-10-04
$
Saya tidak di layar
$ 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
Anda dapat melihat variabel $ TERM.
echo $TERM
Jika suatu screen
sesi, variabel istilah harus mengembalikan "layar".
root@deore:/volumes# echo $TERM
screen
Ctrl-a -d (untuk keluar dari layar)
root@deore:/volumes# echo $TERM
xterm
Juga periksa: https://stackoverflow.com/questions/3472287/how-do-you-tell-if-the-current-terminal-session-is-in-gnu-screen
"$TERM" = "screen"
tampaknya dilestarikan ketika memasuki sudo
lingkungan, tidak seperti $STY
opsi.
Kecuali Anda telah mengubah binding kunci default, Anda dapat melakukan Ctrl+ a-> Ctrl+ t, yang akan menunjukkan waktu, jika Anda berada di layar. Ini akan bekerja bahkan jika Anda memiliki ssh: d pergi ke tempat lain, tidak seperti saran lainnya.
The caption
perintah dalam ~/.screenrc
merupakan cara yang baik untuk membedakan sesi layar.
Saya pribadi menggunakan ini:
$ cat ~/.screenrc
caption always "%{= kc}Screen session on %H (system load: %l)%-28=%{= .m}%D %d.%m.%Y %0c"
Itu menambahkan garis seperti ini di bagian bawah layar:
Screen session on gbook (system load: 1,75 1,74 1,68) Lun 05.01.2015 13:01
Dengan bagian pertama (nama sistem + memuat) berwarna hijau dan tanggal berwarna merah muda. Berguna dan sulit untuk dilewatkan!
Saya telah menemukan solusi lain:
Ubah .screenrc
, jadi sesi layar saya terlihat sangat berbeda dari terminal normal.
.screenrc
file contoh .
Lakukan a screen -ls
. Ini akan secara eksplisit menunjukkan Attached
versus Detached
status.
Contoh terlampir:
$ screen -ls | grep tached
3132.pts-0.esavo00 (Attached)
Contoh terlepas:
$ screen -ls |grep tached
3132.pts-0.esavo00 (Detached)