නැවත පණගැන්වීමෙන් පසු tmux සැසිය ප්‍රතිස්ථාපනය කරන්න


284

Tmux සැසියක් සුරැකීමට ක්‍රමයක් තිබේද? වෙනත් වචන වලින් කිවහොත්, මම පරිගණකය නැවත ආරම්භ කළහොත්, මට සෑම විටම සැසි නැති වේවිද?


1
විකල්පයක් ලෙස ඔබට තැටියට ශිශිර විය හැකිය
Mâtt Frëëman

37
ශිශිරකරණය යනු ඔබේ පරිගණකය නැවත ධාවනය නොකොට නිරන්තරයෙන් ධාවනය වීමට විකල්පයකි.
චෙප්නර්

6
@chepner: විට එම දින ඇත*** System restart required ***
karatedog

3
@karatedog ඔව්, එබැවින් නැවත ආරම්භ කිරීමේදී ඔබගේ tmux සැසිය අහිමි වීමට ශිශිරකරණය විසඳුමක් නොවන බව අපි දෙදෙනාම එකඟ වෙමු.
චෙප්නර්

Answers:


180

ඔව්, ඔබ ඔබේ පරිගණකය නැවත ආරම්භ කළහොත් ඔබට සැසි නැති වේ. සැසි සුරැකිය නොහැක. නමුත්, ඒවා තිර රචනය කළ හැකිය. ඇත්ත වශයෙන්ම බොහෝ දේ කරන්නේ සමහර සැසි පිටපත් කිරීම මඟින් ඔබට ඒවා නැවත නිර්මාණය කළ හැකිය. උදාහරණයක් ලෙස, සැසියක් නිර්මාණය කිරීම සඳහා ඉතා සුළු ෂෙල් පිටපතක් මෙන්න:

#!/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 සමඟ . එය ආපසු කේතය පරීක්ෂා කරයි. දැනටමත් එම නම සමඟ අඛණ්ඩ සැසියක් තිබේ නම්, එය "if" චක්‍රය මඟ හැර කෙලින්ම අවසාන පේළියට යයි, එහිදී එය සැසිවාරයට සම්බන්ධ වේ. එසේ නොමැති නම්, එය සැසියක් නිර්මාණය කර එයට යතුරු කිහිපයක් යවයි (දැනට අහඹු ස්ක්‍රිප්ට් එකක් ධාවනය කරන්න). එවිට එය "if" බ්ලොක් එකෙන් පිටවී ඇමිණේ.

මෙය ඉතා සුළු සාම්පලයකි. ඇමිණීමට පෙර ඔබට බහු කවුළු, කවුළු සහ ඒ හා සමාන දෑ සෑදිය හැකිය.

ඔබ ඉල්ලූ එකම දේ මෙය නොවේ . ඔබ සැසිවාරයේ කිසියම් වෙනස්කමක් කරන්නේ නම්, උදාහරණයක් ලෙස ඔබ කවුළුවක් නැවත නම් කර එහි නව කවුළුවක් සාදන්න, ඔබ නැවත ආරම්භ කළහොත් එම වෙනස්කම් සුරැකෙන්නේ නැත.

ස්ක්‍රිප්ටින් සැසි ක්‍රියාවලිය ලිහිල් කරන මෙවලම් කිහිපයක් තිබේ, මම අතින් දේවල් කිරීමට කැමති වුවද (එය වඩාත් බහුකාර්ය යැයි මම සිතමි). එම මෙවලම් වන්නේ Tmuxinator සහ Teamocil ය .

මගේ ප්‍රධාන තොරතුරු මූලාශ්‍රය වූයේ “ප්‍රායෝගික පොත් රාක්කය” Tmux පොතයි.


1
ලිපිගොනු 5 ක් සහිත සැසියක් යථා තත්වයට පත් කිරීමට මට අවශ්‍ය නම් එය කිසිවක් නොකරනු ඇත. එය කිරීමට ක්‍රමයක් නැද්ද?
chovy

5
ඔබ ක්‍රියාත්මක වී ඇති ක්‍රියාවලි වල තත්වය ගැන Tmux කිසිවක් දන්නේ නැත. ඔබ කේත රචනය පසු හැකි එකම ගොනු 'යැවීමේ-යතුරු' සහිත විසින් විවෘත හෝ 'භේදය-කවුළුව' විධානය 'විම් file1 file2 file3' හෝ පෙනුම විය ඔබේ කර්තෘගේ සැසිය කළමනාකරණ බවට (විම් -S හා ඒ හා සමාන)
bloy

tmux send-keys ...රේඛාවේ අරමුණ කුමක්ද?
ඩොමිනිකාස් මොස්ටවුස්කිස්

2
Command ඩොමිනිකාස් මොස්ටාස්කිස් විසින් එම සැසිය සඳහා යතුරු එබීම යවනු ලැබේ . එය සැසිවාරයට ඇතුළු වීම සහ යතුරුපුවරුවෙන් යතුරු ඇතුල් කිරීම වැනි ය. මෙම අවස්ථාවේදී, ඔබ "~ / bin / script" යවා ඉන්පසු Enter යවන්න.
ඩකාටින්

මට ස්ක්‍රිප්ට් එක ssh පරිශීලක නාමය සමඟ ප්‍රවේශ වී සමත් විය හැකිද? .
ජාස්

128

මම සරල බාෂ් ස්ක්‍රිප්ට් එකක් ලිව්වෙමි.

ක්‍රෝන් වෙතින් අතින් හෝ වරින් වර එය අමතන්න (ඔබට අමතක විය හැකි නිසා):

tmux-session save

එය ලියනු ඇත ~/.tmux-session. එසේ නැවත පණගැන්වීමෙන් පසු ඒවා ප්‍රතිස්ථාපනය කරන්න:

tmux-session restore

පේළි සිය ගණනක් දිග පර්ල් පිටපතට වඩා මෙය හොඳ යැයි මට පෙනේ.


මෙය ඔබට එක් tmux සැසියක් ඇත්නම් පමණක්ද?
සෙවිනාර්ත්ස්

මෙය mutltiple tmux සැසි සඳහා ක්‍රියා කරයි, නමුත් එය එක් එක් කවුළුව තුළ කවුළු සුරකිනු නොලැබේ.
SimplelyKnownAsG

1
ඔබේ tmux-sessionස්ක්‍රිප්ට් එක දැන් මගේ ඩොට් ෆයිල්ස් ව්‍යාපෘතියේ ඇත. ස්තූතියි! github.com/ElectricRCAircraftGuy/eRCaGuy_dotfiles
ගේබ්‍රියෙල් ස්ටේප්ල්ස්

95

මම tmux ප්ලගිනයක් ලිවූ අතර එමඟින් සම්පූර්ණ tmux පරිසරය සුරැකීමට සහ පසුව එය යථා තත්වයට පත් කිරීමට ඔබට හැකි වේ. එය සැබවින්ම සවිස්තරාත්මක වීමට උත්සාහ කරන අතර එමඟින් ඔබ කිසි විටෙකත් tmux අතහැර නොයන හැඟීමක් ඇති වේ.

https://github.com/tmux-plugins/tmux-resurrect

යාවත්කාලීන කිරීම: දැන් tmux- අඛණ්ඩ ප්ලගිනයක් ඇත, එය tmux පරිසරයේ ස්වයංක්‍රීය පසුබිම් ඉතිරිකිරීම් සිදු කරයි. විකල්පයක් ලෙස එය පරිගණක නැවත පණගැන්වීමෙන් පසු * ස්වයංක්‍රීයව * tmux env ප්‍රතිස්ථාපනය කරයි.


මෙම ප්ලගිනය නරක නැත, නමුත් එය මගේ සියලුම වැඩසටහන් යථා තත්වයට පත් කළේ නැත. ඔබගේ ලියකියවිලි වැඩි ප්‍රමාණයක් කියවා සමහර විට ගිතුබ් හි ගැටලුවක් ඉදිරිපත් කරනු ඇත.
ආර්න්

R ආර්න් වැඩසටහන මත පදනම්ව, මේ සඳහා වැඩසටහන් පිරික්සුම් කිරීම අවශ්‍ය විය හැකිය. ඒ වෙනුවට, ඔබේ වැඩසටහන් යථා තත්වයට පත් කිරීම සඳහා වින්‍යාස කිරීමට මම නිර්දේශ කරමි - අඛණ්ඩ .vimrc ලිපිගොනු සහ vim සඳහා කර්සරයේ ස්ථාන ආදිය - සහ නැවත විවෘත කළ හැකි මිනිසා වැනි වැඩසටහන් සඳහා tmux pane_current_command ගබඩා කිරීම. මගේ මතය අනුව පිරික්සුම් ස්ථාන ඉතා සංකීර්ණ නමුත් ඕනෑම අවස්ථාවක සොයා බැලීම වටී.
ජෝන් පී

1
plug bruno-sutic ඔබේ ප්ලගිනය (tmux-resurrect) සහ tmux-coninuum අතර වෙනස කුමක්ද?
හුදකලා

දැනට මට මේ ආකාරයට අඛණ්ඩව පැච් කිරීමට අවශ්‍ය විය github.com/tmux-plugins/tmux-continuum/blob/master/docs/…
rofrol

ඉතිහාසය නැවත පූරණය කිරීම (set -g @ resurrect-save-shell-history 'on' භාවිතා කරන විට) සහ සාමාන්‍යයෙන් tmux හි පර්යන්ත අතර මාරුවීමේදී ඉතිහාසය නොනැසී පැවතීම සමඟ මට යම් ගැටලු ඇති විය. බලන්න මෙම නූල් සලසන වක් මගක් (හෝ නම්න්) බලන්න හා විශේෂයෙන්ම එහි 5 වැනි අදහස් මම සාර්ථකව මෙම ගැටලුව ජය ගැනීමට භාවිතා
Matej Vargovčík

10

tmuxinator යනු රූබි හි ලියා ඇති මෙවලමකි, එය පහසුවෙන් tmux සැසි නිර්මාණය කිරීමට සහ කළමනාකරණය කිරීමට භාවිතා කළ හැකිය. ව්‍යාපෘතියක් නිර්මාණය කිරීම සඳහා එය භාවිතා කළ හැකි අතර එය පසුව tmux සැසිය ලෙස ක්ෂණිකව දැක්විය හැකිය.


5

මෙහි ඇති මෙම අර්ධ විසඳුම සලකා බලන්න

සේවාදායකයා නැවත පණගැන්වීමෙන් පසු tmux සැසියේ තත්වය දිගටම පැවතීම සඳහා කතුවරයා tmux සැසියේ ඉතිහාසය සුරකිනු ඇත.


17
කරුණාකර ඔවුන් කියන දේ පළ කළ හැකිද? සබැඳි කුණුවිය හැකිය.
cpast

1
pcpast: මෙය සත්‍යයකි, නමුත් අදහස් ද කුණුවිය හැකිය. දෙකම දීමට හොඳම :)
danielpops

7
link ඔබේ සබැඳිය 404 ආපසු ලබා දෙයි
rofrol

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.