Gnu-Screen
如何設置 byobu 以在登錄時使用第二個螢幕會話?
**tl;博士:**我有一個 irssi 代理螢幕會話在後台執行。我正在執行
byobu -R -S byobu;exit
以~/.bash_profile
啟動第二個會話,而不是重新連接到 irssi 會話,但是當我登錄兩次(例如,一次通過本地終端,一次通過 SSH)時,它會啟動第三個會話。如何使第二個登錄重新連接到第一個?我之前在我的伺服器登錄時啟用了 byobu。這工作得很好,無論我從哪裡登錄,我都會得到相同的底層螢幕會話。
但是,然後我在伺服器的引導中添加了第二個螢幕會話:
[alex@alex-ubuntu-server ~]$ cat /etc/rc.local #!/bin/sh -e # [clipped out default ubuntu rc.local header] # run an irssi proxy under screen as user alex sudo -H -u alex screen -d -m -S irssi-proxy irssi exit 0 [alex@alex-ubuntu-server ~]$
從那時起,此命令(
~/.bash_profile
由 byobu 配置放入我的):_byobu_sourced=1 . /usr/bin/byobu-launch -S byobu
將連接到已經存在的 irssi 螢幕會話,而不是創建新會話。這顯然不理想,所以最終我選擇了以下命令:
byobu -R -S byobu;exit
然後打算命名螢幕會話,從而在我通過例如 SSH 再次登錄時允許重新連接到相同的名稱。但是,當我再次登錄時,我會得到一個新的螢幕會話而不是現有的會話(正如您在下面的範例中看到的,這已經發生過一次)。
[alex@alex-ubuntu-server ~]$ screen -ls There are screens on: 18036.byobu (07/07/2013 04:26:44 PM) (Attached) 3869.byobu (07/05/2013 07:45:37 PM) (Attached) 1319.irssi-proxy (07/04/2013 05:01:54 PM) (Detached) 3 Sockets in /var/run/screen/S-alex. [alex@alex-ubuntu-server ~]$ ssh localhost Ubuntu 13.04 alex@localhost's password: # at this point the screen redrew because of the new byobu session, # so these weren't really one after another, as shown here alex@alex-ubuntu-server:~$ screen -ls There are screens on: 6216.byobu (07/07/2013 05:17:38 PM) (Attached) 18036.byobu (07/07/2013 04:26:44 PM) (Attached) 3869.byobu (07/05/2013 07:45:37 PM) (Attached) 1319.irssi-proxy (07/04/2013 05:01:54 PM) (Detached) 4 Sockets in /var/run/screen/S-alex. alex@alex-ubuntu-server:~$
我不想切換到
tmux
. 如果可能,我如何建構一個 byobu/screen 命令重新連接到現有的第二個螢幕會話,否則會啟動一個新的(第二個)會話?
您可以將 irssi 程序切換為使用
tmux
,而不是登錄程序。
當使用 ssh 連接到機器並且您想要一個新會話時,您可以在連接時創建一個新的 byobu 會話(
-t
“強制偽終端分配”需要該標誌,否則您會收到以下錯誤:“打開終端失敗:不是終端”):ssh -t your_machine byobu new-session