VPN સાથે SSH સત્ર મૃત્યુ પામે છે: tmux કે જોબ રનર?
ફરીથી જોડાયેલ ટનલ જૂના SSH સોકેટને પુનર્જીવિત કરતું નથી. નક્કી કરો કે કામને ફરીથી જોડાવાનું ટર્મિનલ સત્ર જોઈએ છે કે રેકોર્ડ કરેલા પરિણામ સાથેની જોબ.
તમારો VPN સૂચક લીલો થાય છે, માર્ગ પાછો આવે છે, અને તમે ખુલ્લી છોડેલી SSH વિન્ડો ક્યારેય પ્રોમ્પ્ટ પાછો આપતી નથી. માર્ગ પુનઃસ્થાપિત કરવાથી તેનો ઉપયોગ કરતી TCP વાતચીત પુનઃસ્થાપિત થતી નથી, તેથી તે વિન્ડોમાં ટાઇપ કરેલું બધું ગયું. જો અસલી ચિંતા એડિટર બફર કે લાંબી માઇગ્રેશન હોય, તો ઉકેલ એ છે કે તે કામને એક જ કનેક્શન સાથે બાંધવાનું બંધ કરો. tmux અને જોબ રનર તે સમસ્યાના અલગ અલગ અર્ધા ભાગ ઉકેલે છે.
ફરીથી જોડાયેલ VPN સોકેટ ફરી શરૂ કરતું નથી
સરનામું બદલાયા પછી ફરી શરૂ કરવાની કોઈ કલ્પના TCP પાસે નથી. SSH કનેક્શન બંને છેડાથી ઓળખાય છે, અને જ્યારે ટનલ ફરી બને છે, ત્યારે સ્થાનિક સરનામું બદલાઈ શકે છે અને જૂનું સોકેટ મૃત થઈ જાય છે. સર્વર છેવટે તે નોંધે છે, પણ તમારું ટર્મિનલ તરત જ નોંધે છે.
ક્લાયંટ કીપઅલાઇવ મૃત સાથીને વહેલા શોધી કાઢે છે. તે સત્ર પાછું લાવતું નથી, અને પહેલેથી ચાલતી હતી તે આદેશ પુનઃપ્રાપ્ત કરી શકતું નથી. કીપઅલાઇવ એ શોધક છે, પુનઃપ્રાપ્તિનું સાધન નથી. દૂરસ્થ આદેશ ટકી ગયો કે નહીં તે વિશે તે કંઈ કહેતું નથી.
કામ દૂરસ્થ હોસ્ટ પર મૂકો
સત્ર લેપટોપ પર નહીં, દૂરસ્થ હોસ્ટ પર બનાવો. રોજની જેમ જોડાઓ, ત્યાં tmux શરૂ કરો, અને તેની અંદર એડિટર કે માઇગ્રેશન ચલાવો. ડિફોલ્ટ પ્રીફિક્સ સાથે ડિટેચ કરો અને SSH કનેક્શન જતું રહે ત્યારે પણ સત્ર ચાલુ રહે છે. સ્થાનિક રીતે tmux શરૂ કરવું તમારા શેલને બંધ વિન્ડોથી બચાવે છે, મૃત ટનલથી આવતા દૂરસ્થ આદેશને નહીં.
ssh [email protected]
tmux new-session -s office-workVPN પાછું આવ્યા પછી, તે જ હોસ્ટ પર નવું SSH કનેક્શન ખોલો અને નામથી ફરી જોડાઓ. ટકાઉ વસ્તુ એ સત્ર છે, કનેક્શન નહીં. એવું નામ આપો જે તમે એક અઠવાડિયા પછી પણ ઓળખશો.
tmux વિરુદ્ધ જોબ રનર
હોસ્ટ ચાલુ રહે ત્યાં સુધી tmux ઇન્ટરેક્ટિવ પ્રક્રિયાને જીવંત રાખે છે. જોબ રનર કે સર્વિસ મેનેજર બિન-ઇન્ટરેક્ટિવ જોબને જીવંત રાખે છે, તેની એક્ઝિટ સ્થિતિ રેકોર્ડ કરે છે, અને SSH સત્ર સંપૂર્ણ પૂરું થાય તો પણ ટકી રહે છે. પહેલું તમે જોતા કામ માટે છે; બીજું તમે સમયપત્રક બનાવીને પછીથી તપાસો તે કામ માટે.
હોસ્ટ પુનઃસ્થાપિત કરવા માટે ગોઠવાયેલું ન હોય તો બંનેમાંથી કોઈ રીબૂટમાં ટકતું નથી. tmux સત્ર મશીન સાથે મરે છે, અને ક્ષણિક જોબ યુનિટ તરીકે નોંધાયેલું ન હોય તો બૂટ સાથે મરે છે. કામને શેનાથી આગળ ટકવું છે તે પ્રમાણે પસંદ કરો.
બંને અભિગમોને ફરી જોડાયા પછી વાંચી શકાય એવા લોગની પણ જરૂર છે. તે વિના તમે જાણો છો કે પ્રક્રિયા અસ્તિત્વમાં છે, પણ તેણે શું કર્યું તે નહીં. લોગનો માર્ગ સત્રના નામની બાજુમાં લખો.
શેને ટકવું છે તે પ્રમાણે નિર્ણય લો
કામ અડધે અટકે તો જે સૌથી ખરાબ બની શકે તેના આધારે નિર્ણય લો. એડિટર સત્ર ન સાચવેલા બફર ગુમાવે છે, જે હેરાન કરે છે પણ પુનઃપ્રાપ્ત કરી શકાય છે. પોતાના અડધા ફેરફાર કમિટ કરતું માઇગ્રેશન એવું નથી, અને તે રેકોર્ડ કરેલા પરિણામવાળા રનરની તરફેણ કરે છે. જોબ ઇન્ટરેક્ટિવ અને લાંબી હોય તો tmux અને લખેલો લોગ સામાન્ય રીતે પૂરતા છે.
systemd-run --user --unit=migrate-customers --collect ./migrate.shતમે ગમે તે પસંદ કરો, કંઈપણ ફરી ચલાવતા પહેલા રેકોર્ડ કરેલું પરિણામ તપાસો. છેલ્લી લાઇન ખૂટે તો તે તમને કહે છે કે લેપટોપે શું જોયું, સર્વરે શું કમિટ કર્યું તે નહીં. એ જ ફરક કામને શરૂઆતથી કનેક્શનની બહાર રાખવાનું કારણ છે, અને ડિટેચ અને રીએટેચ મોડલ તેનું સૌથી નાનું સ્વરૂપ છે.