Onbekende Mac-processen onderzoeken
Activiteitenweergave toont apps, helpers, agents, daemons en systeemdiensten. Een bekende of cryptische naam is zwak bewijs: software kan algemene namen delen, en malware kan er een kopiëren. Beoordeel een proces op eigenaar, pad van het uitvoerbare bestand, ouderproces, codehandtekening, verloop van het verbruik, en de actie die het startte.
Kies Weergave › Alle processen, zodat de lijst niet tot je account beperkt blijft. Voeg nuttige kolommen toe, zoals Gebruiker, CPU-tijd, Threads en Soort. Dubbelklik een proces om het ouderproces, open bestanden en poorten, en recente statistieken te bekijken. Apples handleiding voor Activiteitenweergave biedt ook hiërarchische weergaven en weergaven van systeemprocessen. Sample proces legt kort vast wat de threads doen wanneer het proces vast lijkt te zitten, zonder het meteen te stoppen.
De processen waar mensen zich het meest zorgen over maken
- kernel_task staat voor kernelwerk, en hoge CPU kan betekenen dat macOS andere processen beperkt om warmte te beheersen, uitgelegd in kernel_task met hoge CPU.
- WindowServer tekent je scherm; de belasting stijgt met beeldschermen en vensters, in WindowServer met hoge CPU.
- mds, mds_stores, mdworker zijn Spotlight die je bestanden indexeert, in mds en mdworker met hoge CPU.
- Google Chrome Helper-processen zijn de tabbladen en extensies van Chrome, in Chrome Helper met hoge CPU.
De achtergronddaemons die je niet zelf startte
Deze draaien vanzelf en zijn bijna altijd in orde:
- launchd is het eerste proces dat macOS start en de ouder van elke dienst. Het draait altijd; dat is zijn taak.
- trustd controleert certificaten en apphandtekeningen wanneer apps starten of beveiligde verbindingen maken. Korte pieken als je een app opent zijn normaal.
- nsurlsessiond verzorgt netwerkoverdrachten op de achtergrond: iCloud, appdownloads, updates. Het loopt op zolang iets synchroniseert of downloadt, en zakt daarna terug.
- cloudd en bird doen de iCloud-synchronisatie. Ze werken hard net nadat je inlogt of veel bestanden aan iCloud toevoegt, en worden daarna rustiger.
- coreaudiod is de audio-engine van het systeem. Die hoort licht te blijven; aanhoudend hoge CPU wijst soms op een audio-app of plug-in die zich misdraagt.
- photoanalysisd analyseert foto-inhoud voor functies zoals personen en objecten. De planning is opportunistisch en kan variëren met stroom, thermische toestand en werk aan de bibliotheek.
- backupd is Time Machine tijdens een back-up. Verwacht dat het bezig is zolang een back-up loopt.
- syspolicyd helpt systeembeveiligingsbeleid af te dwingen, inclusief de beoordeling van apps. Een piek tijdens installatie of de eerste start heeft context; aanhoudend werk dat er niet bij past verdient nog steeds een meting.
Normaal of vastgelopen is een patroon, geen timer
Zoek naar samenhang en voortgang. Een proces dat stijgt nadat je een app opent, een schijf koppelt of een synchronisatie start, daarna het werk afmaakt en terugzakt, gedraagt zich aannemelijk. Aanhoudende CPU zonder voortgang, snel groeiend geheugen, herhaalde crashes, of een piek die na dezelfde trigger begint, verdient onderzoek. Vergelijk een sample, activiteit van open bestanden en logbestanden voordat je forceert stopt. Veel systeemdiensten starten opnieuw omdat de vragende app of het startbeleid ze nog nodig heeft.
Controleer bij software van derden of het pad van het uitvoerbare bestand in de verwachte app of de ondersteuningslocatie van de leverancier zit, en of de handtekening bij die leverancier hoort. Bij Apple-diensten is het wijzigen of verwijderen van de startconfiguratie zelden de oplossing; zoek de client, de set bestanden, het apparaat of de netwerkbewerking die de dienst voedt.
Bewijs de eigenaar voordat je het stopt
De inspector van Activiteitenweergave is de makkelijkste route. Vanuit Terminal begint dezelfde controle bij de PID, niet bij de weergavenaam:
PID=1234
ps -p "$PID" -o pid=,ppid=,user=,etime=,comm=
lsof -p "$PID" | head
Het ouderproces en het pad van het uitvoerbare bestand verbinden een algemene helper met de app die hem startte; open bestanden tonen het project, de bibliotheek, het apparaat of de database die het werk nu voedt. Als het pad bij een app van een derde hoort, bekijk je de handtekening zonder die te wijzigen:
codesign -dv --verbose=4 "/path/to/the/binary" 2>&1
Een bekende naam met een onverwacht pad of een onverwachte ondertekenaar verdient onderzoek. Een onbekende naam binnen een ondertekende systeemlocatie van Apple is niet verdacht alleen omdat die nieuw voor je is. Stop eerst de app die eigenaar is, en kijk daarna of de helper terugzakt of afsluit voordat je het kindproces forceert stopt.
Onder de motorkap: launchd en diensten op verzoek
Dat er zoveel daemons zijn, komt door launchd, het eerste proces dat macOS start (PID 1) en de ouder van al het andere. De meeste van die achtergrondprocessen draaien niet voortdurend: launchd registreert ze en start ze op verzoek wanneer een passende gebeurtenis optreedt, een beveiligde verbinding die trustd nodig heeft, een bestand dat naar een importer gaat, een XPC-bericht van een app, en laat ze daarna weer inactief worden. Daarom verschuift de lijst terwijl je werkt, en daarom doet het forceren van een stop vaak niets: launchd start het opnieuw de volgende keer dat de trigger afgaat. Dat geeft de hele lijst een andere betekenis. Je kijkt niet naar programma's die iemand koos om te draaien, maar naar een verzameling kleine diensten die het systeem start en stopt zodra er werk is, en precies daarom is gedrag in de tijd, niet alleen aanwezigheid, het signaal dat er iets mis is.
Waar een uitleglaag helpt
Activiteitenweergave levert de gezaghebbende proces- en inspectorgegevens. De Statusweergave van Mole kan context in gewone taal en trends toevoegen, maar een uitleg op basis van een naam is alleen een eerste hypothese. Pad, eigenaar, handtekening en gedrag bepalen of het huidige proces het verwachte proces is.
Een herhaalbare procescontrole
Noteer de procesnaam, gebruiker, pad, ouderproces, handtekening, trend van CPU en geheugen, open bestanden en trigger. Neem een sample terwijl het probleem optreedt, en stop daarna de vragende app of de invoer voordat je de daemon aanraakt. Deze methode onderscheidt gewoon achtergrondwerk, een vastgelopen helper van een leverancier en een nagebootste naam veel beter dan alleen een lijst met procesdefinities.