再起動後のtmuxセッションの復元

tmux

tmuxのセッションを保存する方法はありますか?言い換えれば、コンピュータを再起動すると、常にセッションが失われてしまうのでしょうか?

  308  KendallB  2012-06-21


ベストアンサー

はい、コンピュータを再起動するとセッションが失われます。セッションは保存できません。しかし、セッションはスクリプト化することができます。実際、ほとんどの人がやっていることは、いくつかのセッションをスクリプト化して、再作成できるようにすることです。例えば、以下にセッションを作成するための簡単なシェルスクリプトを示します

#!/bin/zsh

SESSIONNAME="script"
tmux has-session -t $SESSIONNAME &> /dev/null

if [ $? != 0 ]
then
tmux new-session -s $SESSIONNAME -n script -d
tmux send-keys -t $SESSIONNAME "~/bin/script" C-m
fi

tmux attach -t $SESSIONNAME

これが何をするかというと、以下のようになります。まず、その名前のセッションが既に存在するかどうかを tmux has-session でチェックします (この場合、オリジナルの名前は “script” です)。そしてリターンコードをチェックします。もし、その名前のセッションがすでに進行中であれば、”if “サイクルをスキップして最後の行に直行し、セッションにアタッチします。そうでなければ、セッションを作成し、そこにいくつかの鍵を送ります(今のところはランダムなスクリプトを実行しているだけです)。そして、”if “ブロックを抜けてアタッチする

非常に些細なサンプルです。複数のウィンドウやペインなどを作成してから貼り付けることができます

しかし、これはあなたが求めていたものとは全く同じではありません。セッションに何か変更を加えた場合、例えばウィンドウの名前を変更して新しいペインを作成したとしても、再起動してもその変更はもちろん保存されません

私は手動で物事を行う方が好きですが(その方が汎用性が高いと思います)、スクリプトセッションのプロセスを簡単にするツールがいくつかあります。TmuxinatorTeamocil です

私の主な情報源は「実用書棚」のTmux本でした

190  Dakatine  2012-06-22


開いているtmuxセッション、ウィンドウ、現在の作業ディレクトリをそれぞれに永続化するシンプルなbashスクリプトを書きました

手動で、またはcronから定期的に呼び出すようにしてください(忘れてしまうかもしれないので)

tmux-session save

~/.tmux-sessionに書き込みます。このように再起動後に復元します

tmux-session restore

数百行の長いPerlスクリプトよりもはるかに良いと思います

134  mislav  2013-07-04


完全なtmux環境を保存しておいて、後で復元できるようにするためのtmuxプラグインを書いてみました。tmuxを辞めたことがないという感覚を持ってもらえるように、本当に細かいところにまでこだわっています

GitHub - tmux-plugins/tmux-resurrect: Persists tmux environment across system restarts.
Persists tmux environment across system restarts. Contribute to tmux-plugins/tmux-resurrect development by creating an account on GitHub.

更新: 現在、tmux 環境の自動バックグラウンド保存を行う tmux-continuum プラグインがあります。オプションで、コンピュータの再起動後に自動的にtmux環境を復元します

101  None  2014-08-30


tmuxinator は Ruby で書かれたツールで、簡単に tmux セッションを作成して管理することができます。プロジェクトを作成するために使用することができ、後にtmuxセッションとしてインスタンス化することができます

10  Praveen Kumar  2014-06-26


ここで見つかった部分解を考えてみましょう

作者は、サーバ再起動後のtmuxセッションの状態を保持するために、tmuxセッションの履歴を保存する関数を作成しました

5  greg  2013-02-02


https://github.com/jimeh/tmuxifierを使ってセッションの再作成に成功しました。これはrubyを使わずにgitを使うだけでインストールできます

サンプルはかなり自己説明的なものです、例えば。https://github.com/jimeh/tmuxifier/blob/master/examples/example.session.sh

1  stej  2019-05-03


タイトルとURLをコピーしました