Ο πελάτης 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 διαδρομή. Αν είναι παρούσα, ο εκκινητής δούλεψε και το εικονίδιο που λείπει είναι ξεχωριστό πρόβλημα με την υποστήριξη ενδείξεων του πίνακα, όχι με την καταχώριση που μόλις επεξεργαστήκατε.

Καταγράψτε τις τρεις παρατηρήσεις στο δελτίο: ξεκίνησε, ορατό, συνδεδεμένο. Αυτή η καταγραφή εμποδίζει τον επόμενο να επαναλάβει την ίδια τριμερή σύγχυση και καθιστά σαφές ποιο επίπεδο χρειάζεται ακόμα δουλειά.

Σχετικά άρθρα