Tunnista VPN-apuohjelma Macilla ennen prosessin tappamista
Sovita VPN-prosessi sen suoritettavaan tiedostoon, ohjaimeen ja verkkorooliin ennen pysäyttämistä ja käytä sitten signaalin sijaan omistajan pysäytyspolkua.
Käsittele viestiä jo käynnissä olevasta apuohjelmasta elinkaaren vihjeenä, älä lupana alkaa tappaa prosesseja. Vaarallinen vaihe ei ole pysäytys itse, vaan sitä edeltävä tunnistaminen, koska yhdellä Macilla voi olla useita samannimisiä komponentteja ja vain yksi niistä omistaa yhteyden. Rakenna identiteettitietue ensin. Päätä sitten, onko pysäytys ylipäätään oikea toimenpide.
Rakenna identiteettitietue ennen kuin toimit
Neljä seikkaa tekevät prosessista tunnistettavan: nykyinen PID ja sen alkamisaika, suoritettava tiedosto ja tuote, johon se kuuluu, käyttäjä- tai oikeuskonteksti, jossa se toimii, ja mikä sen käynnisti. ps -o pid,ppid,user,etime,command -p 1234 antaa kolme ensimmäistä yhdellä rivillä, mukaan lukien sen, kuinka kauan prosessi on ollut elossa. Activity Monitor näyttää samat tiedot ystävällisemmällä ilmeellä. Lisää ohjain eli sovellus tai palvelu, joka vastaa sen käynnistämisestä ja pysäyttämisestä. Näiden neljän kanssa prosessi lakkaa olemasta nimi ja muuttuu objektiksi, josta voit järkeillä.
Jos yksi neljästä on tuntematon, pysähdy siihen. Tuntematon komponentti on kysymys julkaisijalle tai järjestelmänvalvojalle, ei koe.
Vanhan lokin PID kuuluu nyt jollekin muulle
Prosessien ID-tunnukset kierrätetään, ja eilisestä lokista kopioitu numero voi nyt osoittaa johonkin täysin asiaankuulumattomaan. Vertaa alkamisaikaa lokin aikaleimaan ennen minkään johtopäätöksen tekemistä. Sama koskee lyhyttä nimeä: yhden tuotteen kaksi buildia voivat toimittaa apuohjelmia, joilla on samat nimet ja eri tarkoitukset. Identiteetti on tupla, ei koskaan pelkkä numero.
Erota roolit ennen kuin kosket mitään muuta. Yhden yhteyden asiakasohjelma, useita sovelluksia palveleva jaettu apuohjelma ja muiden ihmisten istuntoja vastaanottava palvelin näyttävät kaikki luettelossa taustaprosessilta. Vain yksi niistä voidaan pysäyttää ilman seurauksia, joita et ole harkinnut.
Pysäytä omistajan kautta, älä signaalin kautta
Aloita ohjaimesta, joka omistaa asian: yhteyden Katkaise-painikkeesta, palvelun tuetusta pysäytyskomennosta tai hallinta-agentin omasta toiminnosta. Nämä polut suorittavat sen purkamisen, jota tuote odottaa, mukaan lukien reittien poistaminen ja tunnelilaitteen sulkeminen. Signaali ohittaa kaiken sen ja jättää tilan jälkeensä.
Katso, mitä sen jälkeen jää. Muistiin jäävä prosessi voi odottaa seuraavaa yhteyttä, mikä on suunnittelupäätös eikä epäonnistunut pysäytys.
Miksi valvoja käynnistää uudelleen sen, minkä tapoit
Jos käynnistysdaemon tai automaattisen yhteyden käytäntö aikoo pitää tunnelin pystyssä, prosessin tappaminen ei ilmaise mitään. Valvoja näkee lopetuksen ja käynnistää sen uudelleen, joskus ennen kuin ehdit lukea lokin.
Etsi valvoja ennen kuin taistelet sitä vastaan. launchctl list näyttää ladatut työt ja niiden tunnisteet, ja elossapitoasetuksella varustettu työ käynnistyy uudelleen lopetuksessa suunnittelun mukaan. Oikea toimenpide siellä on muuttaa aikomusta: poista työ käytöstä, kytke automaattisen yhteyden käytäntö pois tai pyydä järjestelmänvalvojaa tekemään se. Pakotettu lopetus on eri työkalu, jolla on eri merkitys, ja se kuuluu jumiutuneen prosessin dokumentoituun palautusmenettelyyn, ei rutiininomaiseen yhteydenhallintaan.
Kirjaa elinkaaren tapahtuma, älä tappamista
Kirjoita muistiin komponentin identiteetti, asiakasohjelman versio, ensimmäinen merkityksellinen elinkaaritapahtuma ja se, mitä teit. Tapahtuma merkitsee enemmän kuin toimenpide, koska kaksi ilmentymää kirjautumisen yhteydessä on käynnistysjärjestyksen ongelma, joka toistuu. Tietue, joka nimeää suoritettavan tiedoston ja sen ohjaimen, antaa seuraavalle henkilölle mahdollisuuden toistaa sen.
Tarkista sitten aiottu tila: palvelu, jota käyttäjä tarvitsi, ja yksityinen resurssi, johon se yltää. Vältä putkea, joka greppaa alimerkkijonon ja tappaa väkisin jokaisen osuman, koska se hylkää kaiken edellä mainitun ja tuhoaa yleensä todisteen siitä, miksi kaksi ilmentymää oli olemassa. Jos prosessi palaa jatkuvasti, löydös on kokoonpanon tai järjestyksen virhe, ja korjaus kuuluu sille, joka omistaa asiakasohjelman käynnistyskäyttäytymisen.