Tuvasta Maci VPN-abiprogramm enne protsessi tapmist
Sovita VPN-protsess selle käivitatava faili, juhtija ja võrgurolliga enne peatamist, seejärel kasuta signaali asemel omaniku peatumisteekonda.
Käsitle teadet juba töötava abiprogrammi kohta elutsükli vihjena, mitte loana hakata protsesse tapma. Ohtlik samm ei ole peatumine ise, vaid identifitseerimine enne seda, sest ühes Macis võib olla mitu sarnase nimega komponenti ja ainult üks neist omab ühendust. Koosta esmalt identiteedikirje. Seejärel otsusta, kas peatumine on üldse õige tegevus.
Koosta identiteedikirje enne tegutsemist
Neli fakti muudavad protsessi tuvastatavaks: praegune PID koos algusajaga, käivitatav fail ja toode, kuhu see kuulub, kasutaja- või õiguste kontekst, mille all see töötab, ja mis iganes selle käivitas. ps -o pid,ppid,user,etime,command -p 1234 annab esimesed kolm ühel real, sealhulgas selle, kui kaua protsess on elus olnud. Activity Monitor näitab sama teavet sõbralikuma näoga. Lisa juhtija, see tähendab rakendus või teenus, mis vastutab selle käivitamise ja peatamise eest. Nende neljaga lakkab protsess olemast nimi ja muutub objektiks, mille üle saab arutleda.
Kui üks neljast on tundmatu, peatuge seal. Tundmatu komponent on küsimus avaldajale või administraatorile, mitte eksperiment.
Vana logi PID kuulub nüüd kellelegi teisele
Protsessi ID-sid ringlussevõetakse ja eilsest logist kopeeritud number võib nüüd osutada millelegi täiesti mitteseotule. Enne mis tahes järelduse tegemist võrdle algusaega logi ajatempliga. Sama kehtib lühikese nime kohta: ühe toote kaks buildi võivad tarnida abiprogramme identsete nimede ja erinevate eesmärkidega. Identiteet on korteež, mitte kunagi ainult number.
Eralda rollid enne millegi muu puudutamist. Ühe ühenduse klient, mitut rakendust teenindav jagatud abiprogramm ja teiste inimeste sessioone vastuvõttev server näevad kõik loendis taustaprotsessina välja. Ainult ühte neist saab peatada ilma tagajärgedeta, mida te ei ole kaalunud.
Peata omaniku kaudu, mitte signaali kaudu
Alusta juhtimisseadmest, mis asja omab: ühenduse nupust Katkesta ühendus, teenuse toetatud peatamiskäsust või haldusagendi enda tegevusest. Need teed teostavad demonteerimise, mida toode ootab, sealhulgas marsruutide eemaldamise ja tunneliseadme sulgemise. Signaal jätab selle kõik vahele ja jätab oleku maha.
Jälgi, mis pärast alles jääb. Mällu jääv protsess võib oodata järgmist ühendust, mis on disainivalik, mitte ebaõnnestunud peatumine.
Miks supervisor taaskäivitab selle, mille sa tapsid
Kui käivitusdeemon või automaatse ühenduse poliitika kavatseb tunnelit üleval hoida, ei väljenda protsessi tapmine midagi. Supervisor näeb väljumist ja käivitab selle uuesti, mõnikord enne, kui jõuad logi lugeda.
Leia supervisor enne, kui temaga võitlema hakkad. launchctl list näitab laaditud töid ja nende silte ning elushoidmise seadega töö käivitub väljumisel disaini järgi uuesti. Õige tegevus seal on kavatsust muuta: laadi töö maha, lülita välja automaatse ühenduse poliitika või palu administraatoril seda teha. Sunniviisiline sulgemine on erinev tööriist erineva tähendusega ja kuulub kinnikiilunud protsessi dokumenteeritud taastamisprotseduuri, mitte tavalisse ühendusehaldusesse.
Kirjenda elutsükli sündmus, mitte tapmine
Kirjuta üles komponendi identiteet, kliendi versioon, esimene asjakohane elutsükli sündmus ja see, mida sa tegid. Sündmus on tähtsam kui tegevus, sest kaks eksemplari sisselogimisel ilmumine on käivitumisjärjekorra probleem, mis kordub. Kirje, mis nimetab käivitatava faili ja selle juhtija, võimaldab järgmisel inimesel seda korrata.
Seejärel kontrolli kavandatud olekut: teenust, mida kasutaja vajas, ja privaatset ressurssi, milleni see jõuab. Väldi torujuhet, mis grepib alamstringi ja tapab sunniviisiliselt iga vastenduse, sest see heidab kõik ülaltoodu kõrvale ja hävitab tavaliselt tõendi selle kohta, miks kaks eksemplari eksisteerisid. Kui protsess tuleb jätkuvalt tagasi, on leid konfiguratsiooni või järjekorra defekt ja parandus kuulub sellele, kes omab kliendi käitumist käivitamisel.