如何设置 byobu 在登录时使用第二屏幕会话?

如何设置 byobu 在登录时使用第二屏幕会话?

长话短说:我有一个 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_profilebyobu 配置中):

_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 命令,在可能的情况下重新连接到现有的第二个屏幕会话,但否则启动一个新的(第二个)会话?

答案1

您可以将 irssi 进程切换为使用tmux,而不是登录进程。

答案2

当使用 ssh 连接到机器并且您想要一个新会话时,您可以在连接上创建一个新的 byobu 会话(-t需要该标志来“强制伪终端分配”,否则您可能会收到以下错误:“打开终端失败:不是终端”):

ssh -t your_machine byobu new-session

相关内容