web-dev-qa-db-ja.com

スクリーンセッションかどうかを確認するにはどうすればよいですか?

ヒットするかどうかを判断するために必要です ctrl+d サーバーから切断するか、現在のscreenを閉じます。

screenセッションにいるかどうかを確認することは、どういうわけか可能ですか?

80
wlk

$STY変数( 画面コマンド で設定される変数)。 「」でない場合は、スクリーンセッションです。

私は画面にいます

$ echo $STY 
29624.pts-1.iain-10-04
$

私は画面にいません

$ echo $STY

$
113
user9517

$ TERM変数を確認できます。

echo $TERM

screenセッションの場合、用語変数は「screen」を返す必要があります。

root@deore:/volumes# echo $TERM
screen

Ctrl-a -d(画面を終了する)

root@deore:/volumes# echo $TERM
xterm

また確認してください: https://stackoverflow.com/questions/3472287/how-do-you-tell-if-the-current-terminal-session-is-in-gnu-screen

47
ewwhite

デフォルトのキー割り当てを変更していない限り、次のことができます Ctrl+a -> Ctrl+t画面にいる場合は、時刻が表示されます。これは、他の提案とは異なり、ssh:dがどこか別の場所にある場合でも機能します。

30
Gurgeh

~/.screenrccaptionコマンドは、スクリーンセッションを区別するための良い方法です。

私はこれを個人的に使用しています:

$ cat ~/.screenrc
caption always "%{= kc}Screen session on %H (system load: %l)%-28=%{= .m}%D %d.%m.%Y %0c"

画面の下部に次のような行を追加します。

Screen session on gbook (system load: 1,75 1,74 1,68)                   Lun 05.01.2015 13:01

最初の部分(システム名+負荷)は緑色、日付はピンク色です。便利で見逃せません!

15
Gaëtan Lehmann

私は別の解決策を見つけました:
変更.screenrcなので、私の画面セッションは通常の端末とは完全に異なって見えます。

6
wlk
screen -ls

セッションを表示し、

screen -r sessioninfo

切断されている場合、切断されたものに再接続します。

screen -D -r sessioninfo

切断されたものに再接続します。

0
Kevin