Linux VPN və proksi xidmətlərinin düzgün ardıcıllıqla dayandırılması
Yol hələ mövcud ikən istehlakçını, sonra proksini, sonra tüneli onun sahibi vasitəsilə dayandırın. ExecStop və TimeoutStopSec-i geniş öldürmə əvəzinə qəsdən istifadə edin.
Proksi işləyərkən dayandırmanın donması nadir hallarda VPN xətasıdır, hətta VPN ekranda görünən son şey olsa belə. Proksinin arxasındakı tətbiqlər hələ də yox olmaq üzrə olan yolu gözləyir və tünelə sahib olan vahiddən hələ onu bağlamaq istənilməmişdir. Yavaş xidmət kimi görünən şey adətən sıralama problemidir. Sıralama bunların çoxunu hər hansı gözləmə müddəti dəyişikliyindən daha yaxşı həll edir.
Tərs istiqamətdə, xaricə doğru işləyin: əvvəlcə istehlakçılar, sonra proksi, sonra tünel — hər birini onu başladan komponent dayandırır.
Heç nəyi dayandırmazdan əvvəl vahidləri siyahıya alın
Normal işə cəlb olunan tətbiq vahidini, proksi vahidini və VPN sahibini yazın. Öz sökmə addımı olan hər hansı həlledici və ya köməkçini də əlavə edin, çünki insanlar gecə ikidə məhz bunları unudur. Bu siyahı olmadan yazdığınız ilk dayandırma əmri təsadüfi bir qurban seçir.
Adlar zəif sübutdur. İstifadəçi proksisi, sistem proksisi və başqa hesabın tüneli eyni adı daşıya bilər, halbuki onların həyat dövrləri tamamilə əlaqəsizdir.
İşi bitirin, sonra istehlakçını dayandırın
Planlaşdırılmış dayandırma tətbiqdən başlayır: qoy o, sorğularını tamamlasın və ya ləğv etsin, sonra proksini öz xidmət vahidi vasitəsilə dayandırın. Əgər tətbiq tünel getdikdən sonra da işləməlidirsə, bunu qəsdən təşkil edin, onu yox olmaq üzrə olan marşruta bağlı saxlamaq əvəzinə.
Dayandırma zamanı yolda olan sorğular qeydə düşməlidir, çünki növbəti başlatmada təkrar cəhdlər fırtınası məhz oradan qaynaqlanır.
ExecStop və ExecStopPost fərqli alətlərdir
ExecStop= sinxron dayandırma əməliyyatıdır; ExecStopPost= isə uğursuz başlatmadan sonra belə işləyən təmizləmədir. Yalnız prosesə siqnal verib qayıdan dayandırma əmri systemd-in davam etməsinə imkan verir, halbuki istehlakçı hələ də buferini boşaldır. Mütləq baş verməli olan hər şey sonrakı varianta, dayandırmanı bloklamalı olan hər şey isə sinxron varianta aiddir. Paket faylını yerində redaktə etmək əvəzinə effektiv vahidi və onun əlavə fayllarını yoxlayın.
Asılılıq qrafiki dayandırma işlərini sıralayır. O, asinxron skripti sinxrona çevirmir və uzaq tətbiqi öz məlumatlarını qeydə almağa məcbur etmir.
Dayandırmaya sərhəd qoyun və bu sərhədin qiymətini bilin
TimeoutStopSec= həm dayandırma əmrinə, həm də xidmətin özünün sonlanmasına sərhəd qoyur və müddət bitdikdə systemd məcburi öldürməyə keçir. Dəyəri tətbiqin real boşaltma davranışına görə seçin və həddə çatdıqda nəyin itirilə biləcəyini yazın. Maşın daha tez sönsün deyə seçilən rəqəm əslində məlumat itkisi parametridir.
Dayandırma hələ də yavaşdırsa, vahidi, onun alt proseslərini, jurnal aralığını və müddət nəticəsini qeyd edin. Hər müddəti qısaltmaq və ya geniş öldürməyə əl atmaq təmiz dayandırmaları növbəti yükləmədə korlanmış vəziyyətə çevirən yoldur.
Sahib vasitəsilə əlaqəni kəsin, sonra üç halı yoxlayın
İstehlakçılar dayandıqdan sonra tünelə sahib olan menecerdən əlaqəni kəsməyi xahiş edin: systemd nüsxəsi, NetworkManager-in aktiv bağlantısı və ya təchizatçı xidməti. Əlaqəsiz OpenVPN prosesini öldürmək marşrutu verən sessiyanı mütləq silmir və yenidən başlatma siyasəti olan proksi yolu sökərkən sorğunu yenidən yarada bilər. Başlamazdan əvvəl bu siyasəti planlaşdırılmış dayandırma ilə uzlaşdırın.
Adi dayandırmanı, aktiv sorğu ilə dayandırmanı və tünelin ilk olaraq uğursuz olduğu dayandırmanı yoxlayın. Son tarixli təkrarlana bilən ardıcıllıq bir dəfə işləyən sürətli söndürmədən yaxşıdır.