Memperbaiki entri autostart VPN yang hanya berjalan di satu desktop
Peluncur VPN yang berjalan di satu desktop tetapi tidak di desktop lain adalah penyaring pada entri desktop, bukan kerusakan terowongan. Baca dulu OnlyShowIn, TryExec, dan penimpaannya.
Klien VPN berjalan dari menu aplikasi, terowongan tersambung, dan ikon tidak pernah muncul setelah masuk di satu mesin, sementara paket yang sama berperilaku benar di mesin lain. Tiga pengamatan dilebur menjadi satu keluhan: apakah program berjalan, apakah antarmukanya terlihat, dan apakah terowongannya aktif. Peluncur diatur oleh entri desktop dengan kunci penyaringan, dan entri itu sama sekali tidak berkaitan dengan protokol VPN. Ikuti panduan secara berurutan dan berhenti ketika salah satu dari ketiganya terpisah dengan jelas.
Tiga fakta terpisah: peluncuran, ikon, terowongan
Entri desktop meluncurkan sebuah program. Entri itu tidak dapat memasang implementasi baki sistem, dan tidak dapat membuat indikator muncul di panel yang tidak mendukung protokol yang dipakai aplikasi. Jika prosesnya sudah berjalan, pertanyaan peluncuran sudah terjawab dan Anda justru melihat masalah integrasi.
Terowongan adalah fakta ketiga. Ikon yang hilang bukan bukti bahwa koneksi terputus, dan mematikan lalu menjalankan ulang klien untuk «memperbaiki» ikon justru cara terowongan yang berfungsi terputus tanpa alasan. Pengguna melaporkan ikon yang hilang dan terowongan yang rusak dalam kalimat yang sama, dan itulah sebabnya keduanya perlu dipisahkan di atas kertas.
Pisahkan keduanya sebelum mengubah apa pun. Periksa apakah prosesnya ada, lalu apakah panel mendukung indikator, lalu apakah antarmuka melaporkan koneksi. Setiap jawaban menunjuk lapisan yang berbeda dan pemilik yang berbeda.
Temukan entri yang benar-benar dibaca sesi
Entri autostart berada di direktori pengguna dan direktori sistem, dan bila nama berkasnya sama, salinan pengguna yang menang. Membaca entri yang salah adalah penyebab paling umum sebuah perubahan tampak tanpa efek. Daftarkan kedua direktori sebelum menyunting apa pun, dan catat berkas mana yang benar-benar akan dimuat sesi.
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
Variabel lingkungan mencetak nama sesi yang menjadi pembanding kunci penyaringan, dan biasanya berupa daftar yang dipisahkan titik dua. Bandingkan secara harfiah dengan nilai di entri, karena nama-nama itu adalah detail konfigurasi yang peka huruf besar-kecil, bukan deskripsi sesi. Nilai GNOME tidak cocok dengan gnome, dan kesenyapan yang muncul tidak disertai pesan kesalahan apa pun. Cetak nilainya daripada mengasumsikannya.
Jika nama berkas yang sama ada di kedua direktori, salinan penggunalah yang penting. Menyunting berkas sistem lalu bertanya-tanya mengapa tidak ada yang berubah adalah jam yang sangat sering terbuang.
Baca kunci penyaringan, secara berurutan
Entri contoh di bawah memperlihatkan kunci yang menentukan apakah sesi akan meluncurkan program. Ini potongan, bukan peluncur lengkap, dan nilainya milik jalur fiktif.
[Desktop Entry] Type=Application Name=Example VPN Exec=/opt/example-vpn/client --minimized TryExec=/opt/example-vpn/client OnlyShowIn=GNOME;
OnlyShowIn membatasi entri pada lingkungan yang didaftar dan NotShowIn mengecualikan yang didaftar. Spesifikasi tidak mendefinisikan perilaku berguna bila keduanya muncul dalam satu entri, jadi perlakukan berkas yang memuat keduanya sebagai cacat, bukan kombinasi pintar. Hapus kunci yang tidak Anda butuhkan daripada menambahkan kunci kedua dan berharap pada aturan prioritas.
TryExec menanyakan apakah berkas yang dapat dieksekusi ada sebelum sesi meluncurkannya. Karena itu jalur sisa dari pemasangan lama menekan autostart meskipun paket baru berfungsi saat dijalankan dari menu, dan kegagalan itu tampak persis seperti penyaring desktop.
Timpa di tingkat pengguna, bukan tingkat sistem
Ketika penyaringnya benar-benar salah untuk mesin ini, salin entri sistem ke direktori pengguna dan ubah salinannya. Menurut aturan autostart XDG, entri pengguna dengan nama sama lebih diutamakan, dan Hidden=true menonaktifkan entri tanpa menghapus berkas sistem.
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
Validasi hasilnya sebelum keluar, karena entri yang cacat bentuknya diabaikan diam-diam dan uji berikutnya tidak memberi tahu apa pun. Memasang ulang paket tidak akan menghapus penimpaan Anda, itulah intinya dan juga alasan mencatat bahwa entri itu ada. Catat jalur berkas di tiket agar orang berikutnya menemukan penimpaan itu alih-alih menurunkannya lagi.
Utamakan cara ini daripada menyunting peluncur sistem bersama, yang mengubah perilaku setiap pengguna di mesin dan tidak dapat ditinjau dengan cara yang sama. Penimpaan di tingkat pengguna terlihat di satu tempat, dapat dibalik dengan menghapus satu berkas, dan mudah dijelaskan di tiket. Berkas sistem tetap seperti yang dikirim vendor, sehingga pembaruan paket tidak diam-diam membatalkan penalaran Anda.
Pastikan peluncuran tanpa menyentuh terowongan
Keluar lalu masuk lagi, kemudian pastikan prosesnya ada sebelum melihat panel. Peluncuran yang berhasil dan ikon yang terlihat adalah dua hasil berbeda, dan hanya yang kedua memerlukan pekerjaan integrasi desktop. Mencampur keduanya membuat Anda memasang ulang paket yang sebenarnya berfungsi selama ini.
pgrep -af example-vpn systemctl --user status example-vpn.service journalctl --user -b --no-pager | grep -i example-vpn | tail -20
Jika prosesnya tidak ada, baca ulang entri untuk mencari penyaring tersisa atau jalur TryExec yang usang. Jika ada, peluncur berfungsi dan ikon yang hilang adalah masalah terpisah pada dukungan indikator panel, bukan pada entri yang baru Anda sunting.
Catat ketiga pengamatan di tiket: berjalan, terlihat, tersambung. Catatan itu mencegah orang berikutnya mengulangi kebingungan tiga arah yang sama, dan memperjelas lapisan mana yang masih perlu dikerjakan.