Gnu-Screen

如何設置 byobu 以在登錄時使用第二個螢幕會話?

  • December 31, 2020

**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

引用自:https://unix.stackexchange.com/questions/82153