Zastoji pri zaustavljanju, ko teče proxy, so redko napaka VPN, tudi ko je VPN zadnja stvar, vidna na zaslonu. Aplikacije za proxy še vedno čakajo na pot, ki bo kmalu izginila, enota, ki ima v lasti tunel, pa še ni bila zaprošena, da bi ga zaprla. Kar je videti kot počasna storitev, je običajno težava z vrstnim redom. Urejanje zaporedja reši več takih primerov kot kakršna koli sprememba časovne omejitve.

Pomikajte se navzven v obratnem vrstnem redu: najprej porabniki, nato proxy in nato tunel — vsakega zaustavi komponenta, ki ga je zagnala.

Preden karkoli zaustavite, naredite seznam enot

Zapišite enoto aplikacije, enoto proxyja in lastnika VPN, ki sodelujejo pri običajnem zagonu. Dodajte morebitni razreševalnik ali pomožno komponento z lastnim zaključkom, saj se prav te pozabijo ob dveh zjutraj. Brez tega seznama prva vpisana ukaz za zaustavitev izbere žrtev naključno.

Imena so šibek dokaz. Uporabniški proxy, sistemski proxy in tunel drugega računa imajo lahko isto ime, njihovi življenjski cikli pa so popolnoma nepovezani.

Najprej dokončajte delo, nato zaustavite porabnika

Načrtovana zaustavitev se začne z aplikacijo: pustite ji, da dokonča ali prekliče svoje zahteve, nato zaustavite proxy prek njegove storitvene enote. Če naj aplikacija deluje naprej, ko tunel izgine, to uredite namerno, namesto da bi jo pustili pripeto na pot, ki bo kmalu izginila.

Zahteve, ki so bile med zaustavitvijo v teku, sodijo v zapis, saj od tam izvira nevihta ponovnih poskusov ob naslednjem zagonu.

ExecStop in ExecStopPost sta različna instrumenta

ExecStop= — je sinhrona operacija zaustavitve; ExecStopPost= — je čiščenje, ki se izvede tudi po neuspelem zagonu. Ukaz za zaustavitev, ki procesu samo pošlje signal in se vrne, pusti systemd, da gre naprej, medtem ko porabnik še vedno prazni. Vse, kar se mora zgoditi ne glede na vse, sodi v različico po zaustavitvi, vse, kar mora zaustavitev blokirati, pa v sinhrono različico. Preglejte dejansko enoto in njene drop-in datoteke, namesto da bi urejali datoteko paketa na mestu.

Graf odvisnosti razvrsti opravila zaustavitve. Ne spremeni asinhrone skripte v sinhrono in ne prisili oddaljene aplikacije, da potrdi svoje podatke.

Omejite zaustavitev in vedite, koliko to omejevanje stane

TimeoutStopSec= omejuje tako ukaz za zaustavitev kot lastno zaključevanje storitve, in ko omejitev poteče, systemd preide na prisilno ubijanje. Vrednost izberite po dejanskem vedenju aplikacije pri praznjenju in zapišite, kaj se lahko izgubi, ko omejitev nastopi. Število, izbrano zato, ker naj bi se stroj ugasnil hitreje, je nastavitev izgube podatkov pod drugim imenom.

Ko je zaustavitev še vedno počasna, zajemite enoto, njene podrejene procese, interval dnevnika in izid časovne omejitve. Krajšanje vseh omejitev ali poseganje po širokem ubijanju je način, kako se čiste zaustavitve spremenijo v poškodovano stanje ob naslednjem zagonu.

Odklopite se prek lastnika in nato preizkusite tri primere

Ko so porabniki zaustavljeni, prosite upravitelja, ki ima v lasti tunel, za odklop: instanco systemd, aktivno povezavo NetworkManager ali storitev ponudnika. Ubijanje nepovezanega procesa OpenVPN ne odstrani nujno seje, ki je zagotovila pot, proxy s pravilom ponovnega zagona pa lahko znova ustvari zahtevo, medtem ko pot razstavljate. To pravilo uskladite z načrtovano zaustavitvijo, preden začnete.

Preizkusite običajno zaustavitev, zaustavitev z aktivno zahtevo in zaustavitev, pri kateri tunel odpove prvi. Ponovljivo zaporedje z rokom je boljše od hitrega izklopa, ki deluje enkrat.

Sorodni članki