tmux-plugins / tmux-resurrect

Persists tmux environment across system restarts.
MIT License
11.34k stars 423 forks source link

my resurrect windows save/reload don't work anymore #245

Open elgarbe opened 6 years ago

elgarbe commented 6 years ago

I was working with 3 windows and several panes on each one. I was saving and restoring for several days. Until I press prefix + d and detach the session. I was trying to fix it. I attached my session again, but now if I press prefix + r nothing happen, and pressing prefix + s is showing this: (0) + 0: 1 windows (attached) and seems to not saving anything.

I lost my 3 windows trying to fix it! Is there a way to get it working again?

kunaltyagi commented 6 years ago

Same issue.

More info: The data is present in the tmux_ressurect_* file and the last is pointing to the correct file (though pane_contents.tar.gz is broken. prefix C-r, prefix C-R both do nothing, except display a message: Tmux restore comple! but nothing changes

dmonopoly commented 5 years ago

I also have this issue. @bruno- Even if you're too busy to take a look, can you provide pointers on how one might debug such issues?

I think this plugin is great and would be happy to help out.

bruno- commented 5 years ago

Hi guys, I never experienced this issue.

@dmonopoly yea, you can debug by looking at ~/.tmux/resurrect/* files and more specifically at ~/.tmux/resurrect/last (which is just a symlink to the last "real" resurrect file)`.

For some reason it seems ~/.tmux/resurrect/last doesn't save or restore properly after tmux has been detached?

dmonopoly commented 5 years ago

Yes, do you have more details?

My ~/.tmux/resurrect/last is pointing to the correct most recent save. Yet using the restore command, which causes the UI to briefly say ~"tmux restored!", doesn't actually lead to restoration of sessions.

Thanks

bruno- commented 5 years ago

And does it look like ~/.tmux/resurrect/last has the correct file content?

If "last" file content is undecipherable to you can you compare one valid tmux_resurrect_*.txt (the one that restores env properly) with the one that is not valid (the one that doesn't restore anything)? Maybe you can paste the content here and label them "valid" and "not valid"?

dmonopoly commented 5 years ago

Valid, from a different tmux terminal:

pane    0       1       :bash   1       :*      1       :/Users/daze/Downloads  1       bash    :
pane    hack    1       :bash   0       :-      1       :/Users/daze/PersonalGDrive/Hacks/journalgen    0       bash    :
pane    hack    1       :bash   0       :-      2       :/Users/daze/PersonalGDrive/Hacks/journalgen    1       vim     :vim -S
pane    hack    2       :bash   1       :*      1       :/Users/daze/utils/mindsearch   1       bash    :
pane    hack    2       :bash   1       :*      2       :/Users/daze/utils/mindsearch   0       bash    :
pane    ms      1       :vim    0       :-      1       :/Users/daze/PersonalGDrive/Hacks/ML/tensorflow/tensorflow      0       bash  :
pane    ms      1       :vim    0       :-      2       :/Users/daze/PersonalGDrive/Hacks/ML/tensorflow/tensorflow      0       bash  :
pane    ms      1       :vim    0       :-      3       :/Users/daze/PersonalGDrive/Hacks/ML/tensorflow 1       bash    :
pane    ms      2       :ms     1       :*      1       :/Users/daze/utils/mindsearch   0       bash    :
pane    ms      2       :ms     1       :*      2       :/Users/daze/utils/mindsearch   0       bash    :
pane    ms      2       :ms     1       :*      3       :/Users/daze/utils/mindsearch   1       bash    :
window  0       1       1       :*      d2fd,120x88,0,0,0
window  hack    1       0       :-      5f34,101x47,0,0[101x21,0,0,1,101x25,0,22,2]
window  hack    2       1       :*      16e3,101x47,0,0[101x23,0,0,3,101x23,0,24,11]
window  ms      1       0       :-      52d2,120x88,0,0{59x88,0,0,4,60x88,60,0[60x43,60,0,5,60x44,60,44,6]}
window  ms      2       1       :*      57f0,120x88,0,0{71x88,0,0,7,48x88,72,0[48x48,72,0,8,48x39,72,49,9]}
state   hack    ms

Invalid, from the problematic tmux terminal:

pane    amp     1       :bash   1       :*      1       :/g/s/c/d/amp-tmp/3 0       bash    :
pane    amp     1       :bash   1       :*      2       :/g/s/c/d/amp-tmp/3 1       bash    :
pane    at        1       :bash   1       :*      1       :/g/s/c/d/at/3       0       bash    :
pane    at        1       :bash   1       :*      2       :/g/s/c/d/at/3       1       bash    :
pane    rq      1       :bash   1       :*      1       :/g/s/c/d/rq1/3     1       bash    :
window  amp     1       1       :*      2738,120x90,0,0[120x45,0,0,4,120x44,0,46,5]
window  at        1       1       :*      2731,120x90,0,0[120x45,0,0,1,120x44,0,46,3]
window  rq      1       1       :*      b4ff,120x90,0,0,2
state   amp
dmonopoly commented 5 years ago

Yeah the content looks correct to me :/ other ideas?

AndrewCsoka commented 5 years ago

I'm having the same issue with a new install on OSX. Saving creates a file with expected format and restoring reports success but with no changes to tmux. I've tried tmux 2.7 and 2.8. Any help would be great, thanks

adventurist commented 5 years ago

I am experiencing this issue running tmux 2.9a (the current official release) on 4.19.79-1-MANJARO.

Restoring sessions seemed to work when logging out of KDE and logging in again, but doesn't when returning from a suspended state:

The desired state is restored for long enough to be visible, but then disappears a moment later to reveal the default state of a blank tmux session.

jpfss commented 2 years ago

It seems that I found It can not to save or restore properly after tmux has been detached.I have tested many times that I deatch my session and shutdown .And the start the OS with runing the command "tmux ls ".It show that "no session",It make me Confused and It seems to tell me that seems does not work in Debian 11 with gnome desktop.At Last ,I find it works if you don't deatch the session before restart the laptop computer.I hope it will be well in Future

dmonopoly commented 1 year ago

I happened to circle back to this years later. In my case, tmux-plugins seems to have updated its syntax for how to specify plugins.

I used to do this:

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

But I noticed the docs at https://github.com/tmux-plugins/tpm now present it differently:

# List of plugins
set -g @plugin 'tmux-plugins/tpm'
set -g @plugin 'tmux-plugins/tmux-sensible'

Using the updated syntax allowed my plugins to work correctly again; I also no longer see the issue described above where save or reload would fail. My tmux version is 3.2a.

xave commented 1 year ago

The answer for me was to just create the last symlink, which on my system was no longer there. I had been doing something which ate up all my memory and had to do a hard power down. Somehow that symlink was no longer present on reboot.

ln -s ~/.tmux/resurrect/tmux_resurrect_<the-file-with-state-you-want>.txt ~/.tmux/resurrect/last

I then did a restore from save and it worked.