読者です 読者をやめる 読者になる 読者になる

/var/log/messages from Tocyuki

IT / MUSIC / BJJ / LIFE / GROUMENT

tmuxのバージョンアップ&セッション情報の保存

インフラ tmux テクノロジー

f:id:tocguitar1:20161012094513p:plain

tmuxでセッション情報を保存・復元したい

ちょっと前からtmuxを使っているのですが、CentOS7で普通にyumでインストールしたのでバージョンが1.8でした。

そして最近、tmux用の踏み台サーバを移動するため、一度シャットダウンしないといけないことになりました。

そこで気づきました。

今まで育てたセッション達が死んでしまう。。。

そこでセッション情報を保存する方法がないものか調べたところ、以下のプラグインで実現できることがわかりました。

github.com

このプラグインを使うにはtpmで管理すると良い感じだということがわかり、tpmを使ってみようとしましたが、調べるとtmux1.9からじゃないと使えないとのこと・・・\(^o^)/

せっかくなのでtmuxを最新バージョンへアップデートしてみることにしました。

ちなみに、
バージョンアップ後、バージョンアップ前のセッション情報は使えず、育てたセッション達は無事死亡いたしました。

tmuxのバージョンアップ

現在1.8のバージョンを最新の2.3へバージョンアップします。

古いtmuxの削除

# yum remove tmux

依存関係のあるモジュールのインストール

# yum install libevent-devel ncurses-devel

tmux2.3のインストール

# cd /usr/local/src
# wget https://github.com/tmux/tmux/releases/download/2.3/tmux-2.3.tar.gz
# tar -xvf tmux-2.3.tar.gz
# cd tmux-2.3
# ./configure && make
# make install

tpmの導入

tmuxプラグイン管理のtpmをインストール

tpmのインストール

# git clone https://github.com/tmux-plugins/tpm ~/.tmux/plugins/tpm

.tmux.confの作成

set -g @tpm_plugins '              \
  tmux-plugins/tpm                 \
  tmux-plugins/tmux-resurrect      \

'

run-shell '~/.tmux/plugins/tpm/tpm'

.tmux.confの読み込み

# tmux source-file ~/.tmux.conf

プラグインのインストール
tmuxを起動してprefix I(shift+I)でpluginがインストールされる

tmux-resurrectでのセッション情報の保存と復元を試す

現在のtmuxセッションの確認

# tmux ls
system1: 1 windows (created Tue Oct 11 18:11:28 2016) [294x78]
system2: 1 windows (created Tue Oct 11 18:16:18 2016) [294x78]
system8: 1 windows (created Tue Oct 11 18:19:27 2016) [294x78]
system9: 2 windows (created Tue Oct 11 18:20:40 2016) [294x78]
systemA: 1 windows (created Tue Oct 11 18:23:29 2016) [294x78]
systemC: 2 windows (created Tue Oct 11 18:29:35 2016) [294x78]

いづれかのセッションにアタッチし、prefix Ctrl + sでセッションを保存

セッションの削除

# tmux kill-server
# tmux ls
no server running on /tmp/tmux-0/default

tmuxサーバーを起動し、prefix Ctrl + rでセッションを復元

セッションの確認

# tmux ls
0: 1 windows (created Wed Oct 12 10:46:41 2016) [294x78]
system1: 1 windows (created Wed Oct 12 10:46:43 2016) [294x78]
system2: 1 windows (created Wed Oct 12 10:46:43 2016) [294x78]
system8: 1 windows (created Wed Oct 12 10:46:43 2016) [294x78]
system9: 2 windows (created Wed Oct 12 10:46:44 2016) [294x78]
systemA: 1 windows (created Wed Oct 12 10:46:44 2016) [294x78]
systemC: 2 windows (created Wed Oct 12 10:46:44 2016) [294x78]

他にも色々プラグインがあるみたいなのでこれから色々いじっていきたいと思います!

参考情報

qiita.com

qiita.com

qiita.com

qiita.com

dev.classmethod.jp

qiita.com