Membaiki entri autostart VPN yang hanya berjalan pada satu desktop
Pelancar VPN yang bermula pada satu desktop dan bukan pada desktop lain ialah penapis dalam entri desktop, bukan kerosakan terowong. Baca dahulu OnlyShowIn, TryExec dan penggantian.
Klien VPN bermula dari menu aplikasi, terowong bersambung, dan ikon tidak pernah muncul selepas log masuk pada satu mesin, sedangkan pakej yang sama berkelakuan betul pada mesin lain. Tiga pemerhatian dileburkan menjadi satu aduan: sama ada program bermula, sama ada antara mukanya kelihatan, dan sama ada terowong aktif. Pelancar dikawal oleh entri desktop dengan kekunci penapisan, dan entri itu tidak ada kaitan dengan protokol VPN. Ikuti panduan mengikut urutan dan berhenti apabila salah satu daripada tiga terpisah dengan jelas.
Tiga fakta berasingan: permulaan, ikon, terowong
Entri desktop melancarkan program. Ia tidak boleh memasang pelaksanaan dulang, dan ia tidak boleh membuat penunjuk muncul dalam panel yang tidak menyokong protokol yang digunakan oleh aplikasi. Jika proses sudah berjalan, soalan permulaan sudah terjawab dan anda sebaliknya melihat masalah integrasi.
Terowong ialah fakta ketiga sekali lagi. Ikon yang hilang bukan bukti sambungan terputus, dan membunuh serta memulakan semula klien untuk «membaiki» ikon ialah cara terowong yang berfungsi terganggu tanpa sebab. Pengguna melaporkan ikon yang hilang dan terowong yang rosak dalam ayat yang sama, dan itulah sebabnya kedua-duanya perlu dipisahkan di atas kertas.
Pisahkan kedua-duanya sebelum mengubah apa-apa. Periksa sama ada proses wujud, kemudian sama ada panel menyokong penunjuk, dan akhir sekali sama ada antara muka melaporkan sambungan. Setiap jawapan menunjuk kepada lapisan berbeza dan pemilik berbeza.
Cari entri yang benar-benar dibaca oleh sesi
Entri autostart berada dalam direktori pengguna dan direktori sistem, dan apabila nama fail sepadan, salinan pengguna yang menang. Membaca entri yang salah ialah punca paling biasa sesuatu perubahan kelihatan tanpa kesan. Senaraikan kedua-dua direktori sebelum menyunting apa-apa, dan catat fail mana yang benar-benar akan dimuatkan oleh 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
Pemboleh ubah persekitaran mencetak nama sesi yang menjadi pembanding kekunci penapisan, dan biasanya ia senarai yang dipisahkan titik bertindih. Bandingkan secara literal dengan nilai dalam entri, kerana nama itu ialah butiran konfigurasi peka huruf besar kecil dan bukan penerangan sesi. Nilai GNOME tidak sepadan dengan gnome, dan kesenyapan yang terhasil tidak mempunyai sebarang mesej ralat. Cetak nilai itu daripada menganggapnya.
Jika nama fail yang sama wujud dalam kedua-dua direktori, salinan pengguna yang penting. Menyunting fail sistem dan tertanya-tanya mengapa tiada apa berubah ialah satu jam yang sangat biasa terbuang.
Baca kekunci penapisan, mengikut urutan
Entri contoh di bawah menunjukkan kekunci yang menentukan sama ada sesi akan melancarkan program. Ia ialah serpihan, bukan pelancar lengkap, dan nilainya milik laluan rekaan.
[Desktop Entry] Type=Application Name=Example VPN Exec=/opt/example-vpn/client --minimized TryExec=/opt/example-vpn/client OnlyShowIn=GNOME;
OnlyShowIn mengehadkan entri kepada persekitaran yang disenaraikan dan NotShowIn mengecualikan yang disenaraikan. Spesifikasi tidak mentakrifkan tingkah laku berguna apabila kedua-duanya muncul dalam satu entri, jadi anggap fail yang mengandungi kedua-duanya sebagai kecacatan dan bukan gabungan pintar. Buang kekunci yang tidak diperlukan daripada menambah yang kedua dan berharap pada peraturan keutamaan.
TryExec bertanya sama ada fail boleh laku wujud sebelum sesi melancarkannya. Oleh itu laluan yang tertinggal daripada pemasangan lama menindas autostart walaupun pakej baharu berfungsi apabila dilancarkan dari menu, dan kegagalan itu kelihatan sama seperti penapis desktop.
Ganti pada peringkat pengguna, bukan peringkat sistem
Apabila penapis benar-benar salah untuk mesin ini, salin entri sistem ke direktori pengguna dan ubah salinan itu. Menurut peraturan autostart XDG, entri pengguna dengan nama yang sama mempunyai keutamaan, dan Hidden=true melumpuhkan entri tanpa memadam fail 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
Sahkan hasilnya sebelum log keluar, kerana entri yang cacat bentuknya diabaikan secara senyap dan ujian seterusnya tidak memberitahu apa-apa. Memasang semula pakej tidak akan membuang penggantian anda, itulah tujuannya dan juga sebabnya ia dicatat. Catat laluan fail dalam tiket supaya orang seterusnya menemui penggantian itu dan bukan memperolehnya semula.
Utamakan ini daripada menyunting pelancar sistem yang dikongsi, yang mengubah tingkah laku setiap pengguna pada mesin dan tidak boleh disemak semula dengan cara yang sama. Penggantian pada peringkat pengguna kelihatan di satu tempat, boleh diterbalikkan dengan memadam satu fail, dan mudah dijelaskan dalam tiket. Fail sistem kekal seperti yang dihantar oleh vendor, jadi kemas kini pakej tidak membatalkan penalaran anda secara senyap.
Sahkan permulaan tanpa menyentuh terowong
Log keluar dan masuk semula, kemudian sahkan proses itu wujud sebelum melihat panel. Permulaan yang berjaya dan ikon yang kelihatan ialah dua hasil berbeza, dan hanya yang kedua memerlukan kerja integrasi desktop. Mengelirukan kedua-duanya membuat anda memasang semula pakej yang berfungsi sepanjang masa.
pgrep -af example-vpn systemctl --user status example-vpn.service journalctl --user -b --no-pager | grep -i example-vpn | tail -20
Jika proses tiada, baca semula entri untuk penapis yang tinggal atau laluan TryExec yang lapuk. Jika ada, pelancar berfungsi dan ikon yang hilang ialah masalah berasingan dengan sokongan penunjuk panel, bukan dengan entri yang baru anda sunting.
Catat tiga pemerhatian dalam tiket: bermula, kelihatan, bersambung. Catatan itu menghalang orang seterusnya daripada mengulangi kekeliruan tiga hala yang sama, dan menjelaskan lapisan mana yang masih memerlukan kerja.