如何检查我是否处于屏幕会话中?

如何检查我是否处于屏幕会话中?

我需要它来确定点击ctrl+d是否会断开我与服务器的连接或者只是关闭当前screen

是否有可能检查我现在是否正在screen会话中?

答案1

您可以查看$STY变量(由screen 命令)。如果不是“”,则您正处于 screen 会话中。

我在屏幕上

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

我不在屏幕上

$ echo $STY

$

答案2

您可以查看 $TERM 变量。

echo $TERM

如果它是一个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

答案3

除非您更改了默认的键绑定,否则您可以执行Ctrl+ a-> Ctrl+ t,这将显示时间(如果您在屏幕上)。与其他建议不同,即使您在其他地方进行了 ssh:d,此操作也会起作用。

答案4

我找到了另一个解决方案:
修改你的.screenrc,这样我的屏幕会话看起来与普通终端完全不同。

相关内容