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 “ブロックを抜けてアタッチする
非常に些細なサンプルです。複数のウィンドウやペインなどを作成してから貼り付けることができます
しかし、これはあなたが求めていたものとは全く同じではありません。セッションに何か変更を加えた場合、例えばウィンドウの名前を変更して新しいペインを作成したとしても、再起動してもその変更はもちろん保存されません
私は手動で物事を行う方が好きですが(その方が汎用性が高いと思います)、スクリプトセッションのプロセスを簡単にするツールがいくつかあります。Tmuxinator と Teamocil です
私の主な情報源は「実用書棚」の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を辞めたことがないという感覚を持ってもらえるように、本当に細かいところにまでこだわっています
更新: 現在、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