Behandel 'n boodskap oor 'n helper wat reeds loop as 'n leidraad oor die lewensiklus, nie as toestemming om prosesse te begin doodmaak nie. Die gevaarlike stap is nie die stop self nie, maar die identifisering daarvoor, want verskeie komponente met soortgelyke name kan op een Mac bestaan en net een van hulle besit die verbinding. Bou eers die identiteitsrekord. Besluit dan of 'n stop hoegenaamd die regte aksie is.

Bou 'n identiteitsrekord voordat jy optree

Vier feite maak 'n proses identifiseerbaar: die huidige PID met sy begintyd, die uitvoerbare lêer en produk waaraan dit behoort, die gebruiker- of privilege-konteks waarin dit loop, en wat dit ook al begin het. ps -o pid,ppid,user,etime,command -p 1234 gee jou die eerste drie op een reël, insluitend hoe lank die proses al leef. Activity Monitor wys dieselfde inligting met 'n vriendeliker gesig. Voeg die beheerder by, dit wil sê die toepassing of diens wat verantwoordelik is om dit te begin en te stop. Met daardie vier hou 'n proses op om 'n naam te wees en word dit 'n objek waaroor jy kan redekeneer.

As een van die vier onbekend is, stop daar. 'n Onbekende komponent is 'n vraag vir die uitgewer of die administrateur, nie 'n eksperiment nie.

Die PID in 'n ou log behoort nou aan iemand anders

Proses-ID's word hergebruik, en 'n nommer wat uit gister se log gekopieer is, kan nou na iets heeltemal onverwants wys. Vergelyk die begintyd met die tydstempel van die log voordat jy enige gevolgtrekking maak. Dieselfde geld vir 'n kort naam: twee weergawes van een produk kan helpers met identiese name en verskillende doele lewer. Identiteit is die tuple, nooit net die nommer nie.

Skei die rolle voordat jy enigiets anders aanraak. 'n Enkele verbinding se kliënt, 'n gedeelde helper wat verskeie toepassings bedien, en 'n bediener wat ander mense se sessies aanvaar, lyk almal soos 'n agtergrondproses in 'n lys. Net een van hulle kan gestop word sonder gevolge wat jy nie oorweeg het nie.

Stop deur die eienaar, nie deur die sein nie

Begin met die beheer wat die ding besit: die verbinding se Ontkoppel-knoppie, die diens se ondersteunde stop-opdrag, of die bestuursagent se eie aksie. Daardie paaie voer die afbreek uit wat die produk verwag, wat die verwydering van roetes en die sluiting van die tonneltoestel insluit. 'n Sein slaan dit alles oor en laat toestand agter.

Kyk wat daarna oorbly. 'n Proses wat in die geheue bly, wag dalk op die volgende verbinding, wat 'n ontwerpkeuse is eerder as 'n mislukte stop.

Waarom 'n toesighouer herbegin wat jy doodgemaak het

As 'n launch-daemon of 'n outo-verbinding-beleid bedoel dat die tonnel aan moet wees, beteken die doodmaak van die proses niks. Die toesighouer sien die uitgang en begin dit weer, soms voordat jy klaar die log gelees het.

Vind die toesighouer voordat jy daarmee veg. launchctl list wys gelaaide take en hul etikette, en 'n taak met 'n keep-alive-instelling herbegin met die ontwerp by uitgang. Die korrekte aksie daar is om die bedoeling te verander: laai die taak af, deaktiveer die outo-verbinding-beleid, of vra die administrateur om dit te doen. Forseer-uitgang is 'n ander gereedskap met 'n ander betekenis, en dit hoort by 'n gedokumenteerde herstelprosedure vir 'n vasgekeerde proses eerder as by roetine-verbindingsbestuur.

Teken die lewensiklus-gebeurtenis aan, nie die doodmaak nie

Skryf die komponent-identiteit neer, die kliëntweergawe, die eerste relevante lewensiklus-gebeurtenis, en wat jy gedoen het. Die gebeurtenis maak meer saak as die aksie, want twee instansies wat by aanmelding verskyn, is 'n opstartvolgorde-probleem wat sal herhaal. 'n Rekord wat die uitvoerbare lêer en sy beheerder noem, laat die volgende persoon dit reproduseer.

Verifieer dan die beoogde toestand: die diens wat die gebruiker nodig gehad het, en die private hulpbron wat dit bereik. Vermy die pyplyn wat 'n substring grep en elke treffer met geweld doodmaak, want dit gooi al die bogenoemde weg en vernietig gewoonlik die bewyse van waarom twee instansies bestaan het. As die proses aanhou terugkom, is die bevinding 'n konfigurasie- of ordeningsdefek, en die regstelling hoort by wie ook al die kliënt se opstartgedrag besit.

Verwante artikels