Zastoj pri isključivanju dok proxy radi rijetko je VPN greška, čak i kad je VPN zadnje što se vidi na ekranu. Aplikacije iza proxyja još čekaju put koji će upravo nestati, a jedinica koja posjeduje tunel još nije zamoljena da ga zatvori. Ono što izgleda kao spora usluga obično je problem redoslijeda. Redoslijed rješava više takvih slučajeva nego bilo kakva promjena vremenskog ograničenja.

Radite prema van obrnutim redom: prvo potrošači, zatim proxy, zatim tunel, a svaki zaustavlja komponenta koja ga je pokrenula.

Popišite jedinice prije nego bilo što zaustavite

Zapišite jedinicu aplikacije, jedinicu proxyja i vlasnika VPN-a uključene u normalan rad. Dodajte svaki razrješivač ili pomoćnik s vlastitim razgradnjom, jer upravo njih ljudi zaborave u dva sata ujutro. Bez tog popisa prva naredba za zaustavljanje koju upišete odabire žrtvu nasumično.

Imena su slab dokaz. Korisnički proxy, sistemski proxy i tunel drugog računa mogu dijeliti ime, a imati potpuno nepovezane životne cikluse.

Dovršite posao, pa zaustavite potrošača

Planirano zaustavljanje počinje aplikacijom: pustite je da dovrši ili otkaže svoje zahtjeve, pa zaustavite proxy kroz njegovu servisnu jedinicu. Ako aplikacija treba nastaviti raditi nakon što tunel nestane, uredite to namjerno, umjesto da je ostavite pripetu na rutu koja će upravo nestati.

Zahtjevi koji su bili u tijeku tijekom zaustavljanja pripadaju u zapis, jer odatle dolazi oluja ponovnih pokušaja pri sljedećem pokretanju.

ExecStop i ExecStopPost različiti su instrumenti

ExecStop= je sinkrona operacija zaustavljanja; ExecStopPost= je čišćenje koje se izvodi čak i nakon neuspjelog pokretanja. Naredba za zaustavljanje koja samo pošalje signal procesu i vrati se pušta systemd dalje dok potrošač još ispuhuje podatke. Sve što se mora dogoditi u svakom slučaju pripada u post varijantu, a sve što mora blokirati zaustavljanje u sinkronu. Pregledajte stvarnu jedinicu i njezine dodatke umjesto da uređujete datoteku iz paketa na mjestu.

Graf ovisnosti poreda poslove zaustavljanja. On ne pretvara asinkronu skriptu u sinkronu, niti tjera udaljenu aplikaciju da zapiše svoje podatke.

Ograničite zaustavljanje i znajte koliko granica košta

TimeoutStopSec= ograničava i naredbu za zaustavljanje i vlastito prekidanje usluge, a systemd prelazi na prisilno ubijanje kad ograničenje istekne. Odaberite vrijednost prema stvarnom ponašanju aplikacije pri ispuhivanju i zapišite što može biti izgubljeno kad se aktivira. Broj odabran zato što se računalo treba brže ugasiti jest postavka za gubitak podataka u prerušenom obliku.

Kad je zaustavljanje još sporo, zabilježite jedinicu, njezine podređene procese, interval u dnevniku i rezultat ograničenja. Skraćivanje svakog ograničenja ili posezanje za širokim ubijanjem način je na koji se čista zaustavljanja pretvaraju u oštećeno stanje pri sljedećem podizanju.

Odspojite se kroz vlasnika, pa isprobajte tri slučaja

Nakon što potrošači padnu, zamolite upravitelja koji posjeduje tunel da se odspoji: instancu systemd, aktivnu vezu NetworkManager ili uslugu dobavljača. Ubijanje nepovezanog procesa OpenVPN ne uklanja nužno sesiju koja je dala rutu, a proxy s pravilom ponovnog pokretanja može ponovno stvoriti zahtjev dok razgrađujete put. Uskladite to pravilo s planiranim zaustavljanjem prije nego počnete.

Isprobajte normalno zaustavljanje, zaustavljanje s aktivnim zahtjevom i zaustavljanje u kojem tunel prvi zakaže. Ponovljiv slijed s rokom bolji je od brzog isključivanja koje uspije jednom.

Povezani članci