HOWTO: how to connect to another user's console.

问题场景:我们有一块设备卡,上面跑着一个FreeBSD。host这边是Linux,与device那边的交互由host这边的Linux driver负责,driver在Linux下提供了几个char device来使得用户可以与device交互。这些char devices里面,有一个连接到device那边FreeBSD的终端,host端通过minicom(一个2222old的Unix程序)来通过这个char dev与device端交互,这样方便device一端的开发调试。

问题:这个char device只能由一个进程来使用。那么,如果两个开发人员在同时进行开发,那么就只能在用的时候打开,用完就关掉,这样很不方便。

这个问题其实可以转化为:怎么样让两个用户共享一个console。

解决办法:两个开发人员(tom & jerry)可以共享一个screen会话。

tom $> screen -S minicom-session

-S选项用来为该screen会话指定一个名字,方便引用。

tom $>

CTRL-A :multiuser on

Ctrl-A是screen命令的前导符。

tom $>

CTRL-A :acladd jerry

添加jerry的访问权限。

之后,jerry就可以连接到该screen会话了。

jerry $>

screen -x tom/minicom-session

可能的问题:

1, /var/run/screen/的权限可能需要修改;

2, CTRL-A是screen默认的命令前导符, 如果这个组合需要在该会话里面使用(譬如minicom的命令前导符也是Ctrl-A), 可以在开始screen会话的时候指定其他组合键作为前导符:

tom $> screen -S minicom-session -e^Gg


你可能感兴趣的:(console)