Glide Note

glidenote's blog

新卒OJTにwemux(multi-user terminal multiplexing)を使って画面共有することにした

新卒氏がインフラに配属になって、横に座ってOJTをやっているんですが、 説明で自分の画面と、新卒氏の画面を行ったり来たりしてアレやコレや言って作業をしているのが かなり効率が悪かったので、1ヶ月くらい前からwemuxを使って画面を共有するようにした。

screenでも画面共有出来ますが、最近私がscreen使って無いのと、 新卒研修でtmuxを使えと 強制しておいたので、wemuxを使ってます。

wemuxの特徴

  1. tmux1.6以上が必要
  2. 単一の端末を複数人で共有出来る。
  3. 読み取り専用のmirror mode
  4. 複数人で操作ができるpair mode

などの特徴があります。

wemuxの導入

導入環境はCentOS5系で、tmux1.6が既に導入済みです。

wemux自体はtmuxのwrapperなので、tmux1.6以上が必要です。 weemuxは管理サーバ(sshの踏み台サーバ)で動かしてて、教える人と教わる人が ログインして画面共有をしています。

1
2
3
sudo git clone git://github.com/zolrath/wemux.git /usr/local/share/wemux
sudo ln -s /usr/local/share/wemux/wemux /usr/local/bin/wemux
sudo cp /usr/local/share/wemux/wemux.conf.example /usr/local/etc/wemux.conf

/usr/local/etc/wemux.confhost_listにwemuxで画面を共有するユーザを 下記のように記載

1
host_list=(glidenote tnmt lamanotrama)

wemuxの使い方

先にwemuxを起動した人がhost側になります。OJTでは教える側が先にwemuxを起動して hostになっています。(pair modeで動かしているので、両方が操作できますが、 一応形式的に教える人がhostになってます)

まず最初に教える側(私)が下記のような感じでwemuxを起動、

1
2
wemux
chmod 1777 /tmp/wemux-wemux

続いて教わる側(新卒氏)が

1
wemux

でclient側になります。引数でmodeを指定しない場合は、/usr/local/etc/wemux.confで 設定されているmodeで起動します。

wemuxを終了するときは、host側(私)がdetachして

1
wemux stop

すれば/tmp/wemux-wemuxが削除されます。/tmp/wemux-wemuxが残っていると 他の人がwemuxを起動してhostになれないので注意。

1ヶ月使ってみて感じたメリット、デメリット

メリット

  • tmuxで画面共有が出来る。
  • 自分の使い慣れたキーバインドで、説明が出来る。
  • 相手の操作を見るときも、わざわざディスプレイを見に行かなくても良い。
  • コピーモードの矩形選択を利用することで、指摘したい部分を選択出来る。

デメリット

  • tmux限定
  • wemux host側の.tmux.confが利用されるので、変態的なキーバインドだと教わる側や二人同時に操作できるpair modeできつい
  • wemux hostとclient側でディスプレイサイズが異なるとと、表示が残念な感じになる。

ホスト側とクライアント側で微妙にサブコマンドが違って、zshで補完されないと使い勝手が悪かったので、wemuxの補完関数を作って zsh-completionsにpull reqを出しておいたのが mergeされてるのでzsh-completions利用すればweemuxのコマンドが補完されるようになってます。

confはほぼデフォルトのままで使ってるんですが、1ヶ月くらい使ってみて特に不都合も無く良い感じに稼働してます。 同じ画面を見て作業出来るので、確認が楽に出来て、メンテとか重要作業でも使えるかなーと思案中。

参考

Comments