2016-05-14 19 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