ટર્મિનલ બંધ થાય ત્યારે AnyConnect ડ્રોપ થાય: સેશન ચકાસણી
Linux માટેનો AnyConnect ક્લાયન્ટ કનેક્ટ થયા વખતે ખુલ્લા રહેલા લોગિન સેશન યાદ રાખે છે અને તેમાંથી એક બંધ થાય ત્યારે ટનલ ડ્રોપ કરે છે. utmp ફરીથી લખતા પહેલાં ક્રમ ચકાસો.
ટનલ ચાલુ છે, તમે એક વધારાનું ટર્મિનલ બંધ કરો છો અને ક્લાયન્ટમાં એક પણ કી દબાવ્યા વિના VPN નીચે જાય છે. Linux માટેના AnyConnect ક્લાયન્ટમાં જણાવાયેલું કારણ રાઉટિંગ નહીં પણ સેશન હિસાબ છે: ટનલ ઉપર આવ્યા ત્યારે કયા લોગિન સેશન હતા તે ક્લાયન્ટ નોંધે છે અને તેમાંથી કોઈનો અંત ટનલ તોડવાનું કારણ ગણે છે. નીચેની ચકાસણીઓ ક્રમમાં ચાલે છે, અને પહેલી નિષ્ફળ થતી ચકાસણી કહે છે કે તમે આ વર્તન જોઈ રહ્યા છો કે નહીં. ક્લાયન્ટના સામાન્ય આઉટપુટમાં ટર્મિનલનો કોઈ ઉલ્લેખ નથી, તેથી પહેલી વૃત્તિ, એટલે કે કોન્સન્ટ્રેટરને દોષ આપવો, સામાન્ય રીતે વ્યર્થ મહેનત છે.
સિસ્ટમ ફાઇલો સંપાદિત કરીને શરૂ ન કરો. દરેક પગલું ક્યાં તો ડ્રોપ સમજાવે છે અથવા એક ઉમેદવાર દૂર કરે છે, અને સસ્તાં પગલાં પહેલાં આવે છે.
સેશન ડ્રોપને અંડરલે ડ્રોપથી અલગ કરો
ડિસ્કનેક્ટ થયા પછી તરત જ ફરી કનેક્ટ કરો. સેકન્ડોમાં પાછી આવતી ટનલ, એ જ નેટવર્ક પર, નવા ક્રેડેન્શિયલ વિના, મૃત અપલિંક, Wi-Fi રોમિંગ અથવા કોન્સન્ટ્રેટર પરનો નિષ્ક્રિય ટાઇમઆઉટ જેવા બાહ્ય કારણોને બદલે બંધ થયેલા સેશન જેવા સ્થાનિક ટ્રિગર તરફ ઇશારો કરે છે. જે ટનલ Connecting પર અટકી જાય છે, અથવા નેટવર્ક બદલ્યા સુધી નિષ્ફળ રહે છે, તે બીજો લેખ છે.
ટનલ ઉપર આવી ત્યારે શું ખુલ્લું હતું તે લખો: જે ટર્મિનલથી તમે ક્લાયન્ટ ચલાવ્યો, કોઈપણ બીજું શેલ, ગ્રાફિકલ લોગિન અને બીજી મશીનથી આવેલું કોઈપણ SSH સેશન. થોડી વારમાં તમને એ યાદીની જરૂર પડશે, અને આગલા ડ્રોપ પછી તેને યાદશક્તિથી ફરી બનાવવી વિશ્વસનીય નથી.
કનેક્ટ થયા વખતે ક્લાયન્ટે શું નોંધ્યું તે ચકાસો
ક્લાયન્ટ પ્રોસેસ પિતૃઓ અથવા ટર્મિનલ માલિકીની તપાસ કરતો નથી. તે કનેક્ટ થયા વખતે હાજર લોગિન સેશનના સમૂહનો સ્નેપશોટ લે છે અને પછી તે સમૂહની તુલના કરે છે; જ્યારે કોઈ સભ્ય અદૃશ્ય થાય છે ત્યારે તુલના નિષ્ફળ જાય છે અને ટનલ પણ તેની સાથે જાય છે. તેથી જ જે વિન્ડોમાંથી તમે કનેક્ટ થયા તે બંધ કરવું હાનિકારક ન પણ હોય, જ્યારે અસંબંધિત વધારાનું ટર્મિનલ બંધ કરવાથી કનેક્શન મરી જાય છે: મહત્ત્વનું એ છે કે એ સેશન મૂળ સમૂહમાં હતું કે નહીં. ચકાસણી ગણતરી નહીં પણ સમૂહની તુલના છે, તેથી જ સેશન બદલવું તેને ગુમાવવા જેટલું જ ઘાતક હોઈ શકે છે.
કંઈપણ બદલતા પહેલાં ક્લાયન્ટ શું જોઈ શકતો હતો તેની યાદી બનાવો:
who
w
last -n 10
sudo ls -l /run/utmpwho ની દરેક લાઇન utmp માં વપરાશકર્તા પ્રોસેસ એન્ટ્રી છે. જો તમારું સેશન બે વાર દેખાય, એક ગ્રાફિકલ લોગિન માટે અને એક ટર્મિનલ માટે, તો બંને એન્ટ્રી કનેક્ટ થયા વખતે હતી અને બંને ઉમેદવાર છે.
utmp માંથી ફક્ત તમારી પોતાની એન્ટ્રી દૂર કરો
પ્રકાશિત ઉપાય ક્લાયન્ટ શરૂ થાય તે પહેલાં તમે વાપરવા જઈ રહ્યા છો તે સેશનને utmp માં અદૃશ્ય કરે છે. એક નાનું C પ્રોગ્રામ getutent() પર ચાલે છે, જે રેકોર્ડનું ut_line સ્ટાન્ડર્ડ ઇનપુટના TTY જેટલું છે તે શોધે છે અને પછી તે રેકોર્ડ ફરીથી લખે છે. ક્રમ જાણી જોઈને છે: setutent(), એન્ટ્રી વાંચો, તેનું ut_id કોપી કરો, ut_type ને DEAD_PROCESS પર સેટ કરો, વપરાશકર્તા અને લાઇન ફીલ્ડ સાફ કરો, pututline() થી પાછું લખો, પછી endutent().
તેને કમ્પાઇલ કરો, પછી જે શેલ ક્લાયન્ટ શરૂ કરશે તેમાંથી root તરીકે ચલાવો:
sudo ./utmpremove && /opt/cisco/anyconnect/bin/vpn -s connect vpn.example.eduબે નિષ્ફળતા પદ્ધતિઓ મોટાભાગના એ અહેવાલો સમજાવે છે કે સાધન કંઈ કરતું નથી. તે સ્ટાન્ડર્ડ ઇનપુટ સાથે જોડાયેલા TTY પર કામ કરે છે, તેથી ટર્મિનલ વિના સ્ક્રિપ્ટ અથવા cron જોબમાંથી ચલાવવાથી તેને મેળવવા માટે કંઈ રહેતું નથી. અને /run/utmp સામાન્ય વપરાશકર્તાઓ માટે લખી શકાય તેવું નથી, તેથી root વિના ચલાવવું એક્ઝિટ સ્થિતિ ચકાસ્યા વિના શાંતિથી નિષ્ફળ જાય છે.
બંધ થવા પર ટનલ ટકી રહે છે તે ચકાસો
ધારવાને બદલે મિકેનિઝમનું પરીક્ષણ કરો. જે સેશન તમે રાખવા માંગો છો તેમાંથી કનેક્ટ થાઓ, બીજું ટર્મિનલ ખોલો, બીજું બંધ કરો, પછી vpn state અને ઇન્ટરફેસ યાદી પર એક નજરથી ખાતરી કરો કે ટનલ હજુ ચાલુ છે. જો ટનલ ટકી રહે, તો ટ્રિગર દરેક સેશન નહીં પણ ચોક્કસ સેશન પ્રકાર હતું, અને તમે એ સેશન શોધી કાઢ્યું જે ખુલ્લું રહેવું જોઈએ.
જો તે હજુ ડ્રોપ થાય, તો નજર રાખેલું સેશન બીજે ક્યાંક હતું, મોટાભાગે જે ગ્રાફિકલ લોગિને તમારું ટર્મિનલ બનાવ્યું, અને એક TTY એન્ટ્રી દૂર કરવાથી મદદ મળશે નહીં. વધુ સર્જરી ઉમેરવાને બદલે પહેલા પગલાની પૂરી યાદી સાથે અવલોકનનું પુનરાવર્તન કરો.
જ્યારે utmp ફરીથી લખવું ખોટો જવાબ છે
utmp શેર કરેલું હિસાબ છે, ખાનગી ટેબલ નહીં. હજુ જીવંત સેશનની એન્ટ્રી ફરીથી લખવાથી who, w અને કેટલાક ઓડિટ સાધનો તેને ઓછું બતાવે છે, અને પછી એ જ એન્ટ્રી બંધ કરતો પ્રોગ્રામ સંપૂર્ણ નિષ્ફળ થઈ શકે છે. સાધનને તમારા પોતાના સેશન સુધી મર્યાદિત રાખો, મૂળ ફાઇલની નકલ રાખો, અને તેને દરેક રેકોર્ડ દૂર કરતી બૂટ સેવા ન બનાવો.
જો તમારી સંસ્થા અનુપાલન માટે સેશન હિસાબ એકત્ર કરે છે, તો આ ઉપાય તે જરૂરિયાત સાથે અથડાય છે અને સમર્થિત જવાબ બીજી ક્લાયન્ટ આવૃત્તિ અથવા અલગ ઍક્સેસ પદ્ધતિ છે, પેચ કરેલું utmp નહીં. મોટાભાગના લોકો માટે સૌથી ઓછું હસ્તક્ષેપ કરતું સુધારણા એ છે કે ક્લાયન્ટને એવા સેશનથી શરૂ કરવો જે આખો દિવસ ખુલ્લું રહેશે અને તે વિન્ડોને એકલું છોડી દેવું.
ટિકિટ બંધ કરતા પહેલાં નોંધો કે ટનલ ઉપર આવી ત્યારે ક્લાયન્ટ કયા સેશન પર નજર રાખતો હતો. એ જ એક લાઇન રહસ્યમય ડિસ્કનેક્ટને મશીન પરના આગલા વ્યક્તિ માટે પુનરુત્પાદનયોગ્ય સ્થિતિમાં ફેરવે છે.