Зөвхөн нэг ажлын талбарт ажилладаг VPN автоматаар эхлэх бичлэгийг засах
Нэг ажлын талбарт эхэлж нөгөөд эхэлдэггүй VPN эхлүүлэгч нь туннелийн гэмтэл биш, ажлын талбарын бичлэгийн шүүлтүүр юм. Эхлээд OnlyShowIn, TryExec болон дарж бичихийг уншина уу.
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 замын хувьд дахин унш. Хэрэв байгаа бол эхлүүлэгч ажилласан бөгөөд алга болсон дүрс нь самбарын индикаторын дэмжлэгтэй холбоотой тусдаа асуудал бөгөөд таны саяхан зассан бичлэгтэй холбоогүй.
Гурван ажиглалтыг тасалбарт бич: эхэлсэн, харагдаж байна, холбогдсон. Тэр бүртгэл дараагийн хүнийг ижил гурван талын будлианыг давтахыг сэргийлж, аль давхаргад ажил хэрэгтэйг тодорхой болгоно.