VPN კლიენტი ირთვება აპლიკაციების მენიუდან, გვირაბი უკავშირდება, და ხატულა არასოდეს ჩნდება შესვლის შემდეგ ერთ მანქანაზე, მაშინ როცა იგივე პაკეტი მეორეზე ნორმალურად იქცევა. სამი დაკვირვება ერწყმის ერთ საჩივარს: გაეშვა თუ არა პროგრამა, ჩანს თუ არა მისი ინტერფეისი და აწეულია თუ არა გვირაბი. გამშვებს მართავს სამუშაო მაგიდის ჩანაწერი ფილტრის გასაღებებით, და ამ ჩანაწერს VPN პროტოკოლთან არაფერი აქვს საერთო. გაიარეთ სახელმძღვანელო თანმიმდევრობით და გაჩერდით, როცა სამიდან ერთი სუფთად გამოიყოფა.

სამი ცალკე ფაქტი: გაშვება, ხატულა, გვირაბი

სამუშაო მაგიდის ჩანაწერი იწყებს პროგრამას. მას არ შეუძლია უჯრის იმპლემენტაციის დაყენება და არ შეუძლია ინდიკატორის გამოჩენა პანელში, რომელიც არ უჭერს მხარს აპლიკაციის მიერ გამოყენებულ პროტოკოლს. თუ პროცესი უკვე მუშაობს, გაშვების კითხვა უპასუხოა და თქვენ ნაცვლად ინტეგრაციის პრობლემას უყურებთ.

გვირაბი კვლავ მესამე ფაქტია. დაკარგული ხატულა არ არის კავშირის გაწყვეტის მტკიცებულება, და კლიენტის მოკვლა და ხელახლა გაშვება ხატულის «გასწორებისთვის» ზუსტად ის გზაა, რომლითაც მუშა გვირაბი უმიზეზოდ წყდება. მომხმარებლები დაკარგულ ხატულას და გატეხილ გვირაბს ერთ წინადადებაში აცხადებენ, და სწორედ ამიტომაა საჭირო ორივეს ქაღალდზე გამიჯვნა.

გამოყავით ისინი, სანამ რამეს შეცვლით. შეამოწმეთ, არსებობს თუ არა პროცესი, შემდეგ — უჭერს თუ არა პანელი ინდიკატორს მხარს, და ბოლოს — აცნობებს თუ არა ინტერფეისი კავშირზე. თითოეული პასუხი განსხვავებულ ფენასა და განსხვავებულ პასუხისმგებელზე მიუთითებს.

იპოვეთ ჩანაწერი, რომელსაც სესია რეალურად კითხულობს

ავტომატური გაშვების ჩანაწერები მომხმარებლის საქაღალდესა და სისტემის საქაღალდეშია, და როცა ფაილების სახელები ემთხვევა, მომხმარებლის ასლი იმარჯვებს. არასწორი ჩანაწერის წაკითხვა ყველაზე გავრცელებული მიზეზია იმისა, რომ ცვლილება უშედეგოდ გამოიყურება. ორივე საქაღალდე ჩამოთვალეთ სანამ რამეს შეცვლით, და ჩაიწერეთ, რომელ ფაილს ჩატვირთავს სესია რეალურად.

ls -l ~/.config/autostart/ /etc/xdg/autostart/
echo "$XDG_CURRENT_DESKTOP"
grep -H -E '^(OnlyShowIn|NotShowIn|TryExec|Hidden|Exec)=' ~/.config/autostart/*.desktop /etc/xdg/autostart/*.desktop

გარემოს ცვლადი ბეჭდავს სესიის სახელს, რომელთანაც ფილტრის გასაღებები შედარებულია, და ეს ჩვეულებრივ ორწერტილებით გამოყოფილი სიაა. შეადარეთ იგი სიტყვასიტყვით ჩანაწერის მნიშვნელობებს, რადგან ეს სახელები რეგისტრზე მგრძნობიარე კონფიგურაციის დეტალებია და არა სესიის აღწერა. მნიშვნელობა GNOME არ ემთხვევა gnome, და შედეგად წარმოქმნილ სიჩუმეს არავითარი შეცდომის შეტყობინება არ ახლავს. დაბეჭდეთ იგი ვარაუდის ნაცვლად.

თუ ერთი და იმავე ფაილის სახელი ორივე საქაღალდეშია, მთავარია მომხმარებლის ასლი. სისტემური ფაილის რედაქტირება და გაოცება, რატომ არაფერი შეიცვალა, ძალიან გავრცელებული დაკარგული საათია.

წაიკითხეთ ფილტრის გასაღებები, თანმიმდევრობით

ქვემოთ მოცემული საილუსტრაციო ჩანაწერი გვიჩვენებს გასაღებებს, რომლებიც წყვეტენ, გაუშვას თუ არა სესიამ პროგრამა. ეს ფრაგმენტია და არა სრული გამშვები, და მნიშვნელობები გამოგონილ ბილიკს ეკუთვნის.

[Desktop Entry]
Type=Application
Name=Example VPN
Exec=/opt/example-vpn/client --minimized
TryExec=/opt/example-vpn/client
OnlyShowIn=GNOME;

OnlyShowIn ზღუდავს ჩანაწერს ჩამოთვლილი გარემოებით და NotShowIn გამორიცხავს ჩამოთვლილს. სპეციფიკაცია არ განსაზღვრავს სასარგებლო ქცევას, როცა ორივე ერთ ჩანაწერში გვხვდება, ამიტომ ორივეს შემცველ ფაილს ხარვეზად მოეპყარით და არა ჭკვიანურ კომბინაციად. წაშალეთ არასაჭირო გასაღები მეორის დამატებისა და უპირატესობის წესის იმედის ნაცვლად.

TryExec ეკითხება, არსებობს თუ არა შესრულებადი ფაილი სანამ სესია გაუშვებს მას. ამიტომ ძველი ინსტალაციიდან დარჩენილი ბილიკი თრგუნავს ავტოგაშვებას, მაშინაც კი როცა ახალი პაკეტი მენიუდან გაშვებისას მუშაობს, და ეს ხარვეზი ზუსტად სამუშაო მაგიდის ფილტრს ჰგავს.

გადაფარეთ მომხმარებლის დონეზე და არა სისტემის

როცა ფილტრი ამ მანქანისთვის ნამდვილად არასწორია, დააკოპირეთ სისტემური ჩანაწერი მომხმარებლის საქაღალდეში და შეცვალეთ ასლი. XDG-ის ავტოგაშვების წესების მიხედვით ერთსახელიან მომხმარებლის ჩანაწერს აქვს უპირატესობა, და Hidden=true თიშავს ჩანაწერს სისტემური ფაილის წაშლის გარეშე.

mkdir -p ~/.config/autostart
cp /etc/xdg/autostart/example-vpn.desktop ~/.config/autostart/
sed -i '/^OnlyShowIn=/d' ~/.config/autostart/example-vpn.desktop
desktop-file-validate ~/.config/autostart/example-vpn.desktop

გადაამოწმეთ შედეგი სანამ გახვალთ, რადგან არასწორად ფორმირებული ჩანაწერი ჩუმად იგნორირდება და შემდეგი ტესტი არაფერს გეტყვით. პაკეტის ხელახლა დაყენება არ წაშლის თქვენს გადაფარვას, რაც სწორედ მიზანია და ასევე მიზეზი იმისა, რომ ჩაიწეროთ მისი არსებობა. ჩაწერეთ ფაილის ბილიკი ბილეთში, რათა შემდეგმა ადამიანმა იპოვოს გადაფარვა და არა ხელახლა გამოიყვანოს იგი.

ამჯობინეთ ეს საერთო სისტემური გამშვების რედაქტირებას, რომელიც ცვლის ქცევას მანქანის ყველა მომხმარებლისთვის და არ ექვემდებარება იმავე გადახედვას. მომხმარებლის დონის გადაფარვა ერთ ადგილას ჩანს, შექცევადია ერთი ფაილის წაშლით და ბილეთში ადვილად აიხსნება. სისტემური ფაილი რჩება ისე, როგორც მომწოდებელმა გამოგზავნა, ამიტომ პაკეტის განახლება ჩუმად არ აუქმებს თქვენს მსჯელობას.

დაადასტურეთ გაშვება გვირაბზე ხელის შეუხებლად

გახვიდეთ და ხელახლა შედით, შემდეგ დაადასტურეთ, რომ პროცესი არსებობს სანამ პანელს შეხედავთ. წარმატებული გაშვება და ხილული ხატულა ორი განსხვავებული შედეგია, და მხოლოდ მეორეს სჭირდება სამუშაო მაგიდის ინტეგრაციის სამუშაო. მათი არევა გაგზავნით იმ პაკეტის ხელახლა დაყენებაზე, რომელიც მთელი დრო მუშაობდა.

pgrep -af example-vpn
systemctl --user status example-vpn.service
journalctl --user -b --no-pager | grep -i example-vpn | tail -20

თუ პროცესი არ არის, ხელახლა წაიკითხეთ ჩანაწერი დარჩენილი ფილტრის ან მოძველებული TryExec ბილიკის საძიებლად. თუ ის არსებობს, გამშვებმა იმუშავა და დაკარგული ხატულა ცალკე პრობლემაა პანელის ინდიკატორის მხარდაჭერასთან, და არა იმ ჩანაწერთან, რომელიც ახლახან შეცვალეთ.

ჩაწერეთ სამი დაკვირვება ბილეთში: გაეშვა, ჩანს, დაკავშირებულია. ეს ჩანაწერი ხელს უშლის შემდეგ ადამიანს გაიმეოროს იგივე სამმხრივი დაბნეულობა და ცხადს ხდის, რომელ ფენას სჭირდება ჯერ კიდევ მუშაობა.

დაკავშირებული სტატიები