你怎么知道你当前附加的gnu屏幕会话

时间:2012-09-03 02:20:17

标签: gnu-screen

我们在办公室里经常使用gnu屏幕,有时如果我不注意,我最终会迷失到我已经在的屏幕会话。

所以我的问题是,你怎么知道你在哪个屏幕会话?你有办法检查吗?

澄清:我需要知道的是,当我这样做时:

~$ screen -ls

我看到类似的东西:

There is a screen on:
    4732.work_Sept42012     (Attached)
    3551.web01  (Attached)
    5521.mysql01 (Attached)
    1255.tomcat05 (Detached)
    3326.oracle15 (Attached)

 1 Socket in /tmp/uscreens/S-icasimpan.

如何知道我目前是否已连接到任何附加会话?

提前致谢。

2 个答案:

答案 0 :(得分:7)

sessionname屏幕命令外,屏幕还为其启动的进程设置STY环境变量。您可以从shell中检查此变量的值:

$ echo $STY
5521.mysql01
$

答案 1 :(得分:4)

更新

ctrl+a:sessionname可用于显示当前屏幕会话的名称。

之前的回复(有错误解释的问题):

我也在努力解决这个问题,直到我遇到了精彩的hardstatus功能。在~/.screenrc中使用这两行,我在屏幕会话的底部得到以下内容。

hardstatus alwayslastline
hardstatus string '%{= kG}%-Lw%{= kW}%50> %n*%f %t%{= kG}%+Lw%< %{= kG}%-=%D %M %d | %C:%s %A %1`%{-}'

enter image description here

我在这里看到的是我的本地计算机上有三个窗口(bashmumblekalkyl)的屏幕会话。在名为mumble的活动窗口中,我通过ssh连接到另一台计算机,我正在运行另一个具有三个窗口的屏幕会话(topautobash)。我可以看到两个会话中的所有窗口,并跟踪我的位置。