Tmux සැසියක් සුරැකීමට ක්රමයක් තිබේද? වෙනත් වචන වලින් කිවහොත්, මම පරිගණකය නැවත ආරම්භ කළහොත්, මට සෑම විටම සැසි නැති වේවිද?
*** System restart required ***
Tmux සැසියක් සුරැකීමට ක්රමයක් තිබේද? වෙනත් වචන වලින් කිවහොත්, මම පරිගණකය නැවත ආරම්භ කළහොත්, මට සෑම විටම සැසි නැති වේවිද?
*** System restart required ***
Answers:
ඔව්, ඔබ ඔබේ පරිගණකය නැවත ආරම්භ කළහොත් ඔබට සැසි නැති වේ. සැසි සුරැකිය නොහැක. නමුත්, ඒවා තිර රචනය කළ හැකිය. ඇත්ත වශයෙන්ම බොහෝ දේ කරන්නේ සමහර සැසි පිටපත් කිරීම මඟින් ඔබට ඒවා නැවත නිර්මාණය කළ හැකිය. උදාහරණයක් ලෙස, සැසියක් නිර්මාණය කිරීම සඳහා ඉතා සුළු ෂෙල් පිටපතක් මෙන්න:
#!/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 පොතයි.
tmux send-keys ...
රේඛාවේ අරමුණ කුමක්ද?
මම සරල බාෂ් ස්ක්රිප්ට් එකක් ලිව්වෙමි.
ක්රෝන් වෙතින් අතින් හෝ වරින් වර එය අමතන්න (ඔබට අමතක විය හැකි නිසා):
tmux-session save
එය ලියනු ඇත ~/.tmux-session
. එසේ නැවත පණගැන්වීමෙන් පසු ඒවා ප්රතිස්ථාපනය කරන්න:
tmux-session restore
පේළි සිය ගණනක් දිග පර්ල් පිටපතට වඩා මෙය හොඳ යැයි මට පෙනේ.
tmux-session
ස්ක්රිප්ට් එක දැන් මගේ ඩොට් ෆයිල්ස් ව්යාපෘතියේ ඇත. ස්තූතියි! github.com/ElectricRCAircraftGuy/eRCaGuy_dotfiles
මම tmux ප්ලගිනයක් ලිවූ අතර එමඟින් සම්පූර්ණ tmux පරිසරය සුරැකීමට සහ පසුව එය යථා තත්වයට පත් කිරීමට ඔබට හැකි වේ. එය සැබවින්ම සවිස්තරාත්මක වීමට උත්සාහ කරන අතර එමඟින් ඔබ කිසි විටෙකත් tmux අතහැර නොයන හැඟීමක් ඇති වේ.
https://github.com/tmux-plugins/tmux-resurrect
යාවත්කාලීන කිරීම: දැන් tmux- අඛණ්ඩ ප්ලගිනයක් ඇත, එය tmux පරිසරයේ ස්වයංක්රීය පසුබිම් ඉතිරිකිරීම් සිදු කරයි. විකල්පයක් ලෙස එය පරිගණක නැවත පණගැන්වීමෙන් පසු * ස්වයංක්රීයව * tmux env ප්රතිස්ථාපනය කරයි.
tmuxinator යනු රූබි හි ලියා ඇති මෙවලමකි, එය පහසුවෙන් tmux සැසි නිර්මාණය කිරීමට සහ කළමනාකරණය කිරීමට භාවිතා කළ හැකිය. ව්යාපෘතියක් නිර්මාණය කිරීම සඳහා එය භාවිතා කළ හැකි අතර එය පසුව tmux සැසිය ලෙස ක්ෂණිකව දැක්විය හැකිය.
මෙහි ඇති මෙම අර්ධ විසඳුම සලකා බලන්න
සේවාදායකයා නැවත පණගැන්වීමෙන් පසු tmux සැසියේ තත්වය දිගටම පැවතීම සඳහා කතුවරයා tmux සැසියේ ඉතිහාසය සුරකිනු ඇත.
සැසි ප්රතිනිර්මාණය කිරීම සඳහා මම සාර්ථකව https://github.com/jimeh/tmuxifier භාවිතා කරමි . මෙය රුබි නොමැතිව ස්ථාපනය කළ හැකිය.
සාම්පල ස්වයං පැහැදිලි කිරීමකි, උදා: https://github.com/jimeh/tmuxifier/blob/master/examples/example.session.sh