2016-05-14 17 views
3

我使用屏幕运行很多应用程序的不同实例,我命名会议“APP1”,“APP 2”等
如何使用确切的会话名称进入屏幕?

的问题是,如果我有一个名为“app10”屏幕在一个名为“APP1”开始后,当我输入

screen -r app1 

我得到重视的app10屏幕,因为它创造了“匹配”的名字APP1的屏幕。

是否有可能摆脱名称匹配并使用确切名称?

由于技术原因,我不想将app1更改为app01。它的目录名称中使用,自动化等

回答

1

正如您正确指出的那样,屏幕使用参数值作为前缀。

长替代方法是键入:

screen -r $(basename /var/run/screen/S-$USER/*.app1} 

(假设你的插座是否是在Debian系统默认在/ var /运行/屏幕目录)

您可以创建一个在.bashrc文件

function mscreen() { 
     screen -r $(basename /var/run/screen/S-$USER/*$1) 
    } 

这让你输入

相当于bash函数
mscreen app1 

恢复会话app1而不是app10

+0

它像一个魅力,非常感谢! 结果如下:http://i.rems19.fr/6e629 – Rems19

0

可以使用pid前缀,目的:

man screen 

-r [pid.tty.host] -r sessionowner/[pid.tty。主机] 恢复分离的屏幕会话。除了[pid。] tty.host的可选 前缀可能需要 以区分多个分离的屏幕会话之外,没有其他选项可以指定(除了与-d/-D的组合)。第二种形式用于连接到以多用户模式运行的另一用户屏幕 会话。这表明屏幕应该在另一个用户的目录中查找会话。这需要setuid-root。

+0

命名屏幕会话应该是一个友好的名称,而不是PID访问它们更容易的方式。每次访问屏幕前必须键入屏幕-ls有点烦人。 – Rems19

+0

同意,但您可以为其创建别名 – Samuel

+0

您的意思是使用屏幕名称搜索pid,然后使用给定的pid输入屏幕?这很有意思,我会研究它。 – Rems19