Unbekannte Mac-Prozesse untersuchen
Die Aktivitätsanzeige zeigt Apps, Helpers, Agents, Daemons und Systemdienste. Ein bekannter oder kryptischer Name allein ist ein schwaches Indiz: Software kann generische Namen teilen, und Malware kann einen nachahmen. Beurteilen Sie einen Prozess anhand von Eigentümer, ausführbarem Pfad, Parent, Codesignatur, Ressourcenverlauf und der Aktion, die ihn ausgelöst hat.
Wählen Sie Darstellung > Alle Prozesse, damit die Liste nicht auf Ihr Konto beschränkt ist. Fügen Sie nützliche Spalten wie Benutzer, CPU-Zeit, Threads und Typ hinzu. Doppelklicken Sie einen Prozess, um Parent, geöffnete Dateien und Ports sowie aktuelle Statistiken zu prüfen. Apples Activity-Monitor-Handbuch bietet außerdem hierarchische und Systemprozess-Ansichten. Prozess sampleln erfasst für kurze Zeit, was die Threads tun, wenn der Prozess hängen wirkt, ohne ihn sofort zu beenden.
Die Prozesse, die die meisten beunruhigen
- kernel_task fasst Kernel-Arbeit zusammen; hohe CPU-Last kann mit thermischem Schutz zusammenhängen, hat aber auch andere Ursachen, siehe kernel_task high CPU.
- WindowServer setzt App-Oberflächen zum Bildschirmbild zusammen; die Last kann mit Displays und Fenstern steigen, siehe WindowServer high CPU.
- mds, mds_stores, mdworker indizieren Ihre Dateien für Spotlight, siehe mds and mdworker high CPU.
- Google Chrome Helper-Prozesse übernehmen unter anderem Seiten-, Erweiterungs-, GPU- und Netzwerkarbeit, siehe Chrome Helper high CPU.
Die Hintergrund-Daemons, die Sie nicht gestartet haben
Diese laufen von allein und sind fast immer unbedenklich:
- launchd ist der erste Benutzerprozess von macOS und verwaltet viele Systemdienste. Er läuft immer; das ist seine Aufgabe.
- trustd prüft Zertifikate und App-Signaturen, wenn Apps starten oder sichere Verbindungen aufbauen. Kurze Spitzen beim Öffnen einer App sind normal.
- nsurlsessiond übernimmt Hintergrund-Netzwerkübertragungen: iCloud, App-Downloads, Updates. Er wird aktiv, während etwas synchronisiert oder heruntergeladen wird, und beruhigt sich danach.
- cloudd und bird führen die iCloud-Synchronisation aus. Sie arbeiten intensiv nach dem Anmelden oder wenn viele Dateien zu iCloud hinzukommen, und werden danach ruhig.
- coreaudiod ist die System-Audio-Engine. Er sollte leicht belastet sein; anhaltend hohe CPU deutet manchmal auf eine problematische Audio-App oder ein Plug-in hin.
- photoanalysisd analysiert Fotoinhalte für Funktionen wie Personen und Objekte. Die Planung ist opportunistisch und kann von Strom, thermischem Zustand und Arbeit an der Mediathek abhängen.
- backupd ist Time Machine bei einer Sicherung. Erwarten Sie Aktivität, solange eine Sicherung läuft.
- syspolicyd hilft, Systemsicherheitsrichtlinien durchzusetzen, einschließlich der App-Bewertung. Ein Spike bei Installation oder erstem Start einer App hat Kontext; anhaltende, unzusammenhängende Arbeit verdient trotzdem Messung.
Normal oder hängend: ein Muster, kein Timer
Achten Sie auf Korrelation und Fortschritt. Ein Prozess, der nach dem Öffnen einer App, dem Anschließen eines Laufwerks oder dem Start einer Synchronisation ansteigt, dann Arbeit erledigt und sich wieder beruhigt, verhält sich plausibel. Anhaltende CPU ohne Fortschritt, rasch wachsender Speicher, wiederholte Abstürze oder ein Spike nach demselben Auslöser verdienen Untersuchung. Vergleichen Sie ein Sample, Aktivität geöffneter Dateien und Protokolle, bevor Sie den Prozess per Force Quit beenden. Viele Systemdienste starten neu, weil die anfragende App oder die Launch-Richtlinie sie weiterhin braucht.
Bei Drittanbieter-Software prüfen Sie, ob der ausführbare Pfad in der erwarteten App oder im Support-Verzeichnis des Anbieters liegt und die Signatur zu diesem Anbieter gehört. Bei Apple-Diensten ist das Ändern oder Löschen der Launch-Konfiguration selten die Lösung; identifizieren Sie den Client, den Dateisatz, das Gerät oder die Netzwerkoperation, die den Dienst speist.
Den Eigentümer vor dem Beenden belegen
Der Inspektor der Aktivitätsanzeige ist der einfachste Weg. Im Terminal beginnen Sie mit der PID statt dem Anzeigenamen:
PID=1234
ps -p "$PID" -o pid=,ppid=,user=,etime=,comm=
lsof -p "$PID" | head
Elternprozess und Pfad verbinden einen allgemeinen Helper mit der startenden App. Offene Dateien zeigen Projekt, Mediathek, Gerät oder Datenbank, die die Arbeit speisen. Bei einem Drittanbieterpfad prüfen Sie die Signatur ohne Änderung:
codesign -dv --verbose=4 "/path/to/the/binary" 2>&1
Ein bekannter Name mit unerwartetem Pfad oder Signierer verdient Untersuchung. Ein unbekannter Name in einem signierten Apple-Systemort ist nicht allein deshalb verdächtig. Beenden Sie zuerst die besitzende App und prüfen Sie, ob der Helper sich beruhigt oder beendet, bevor Sie den Kindprozess erzwingen.
Unter der Haube: launchd und On-Demand-Dienste
Viele Daemons werden von launchd verwaltet, dem ersten Benutzerprozess von macOS (PID 1). Er ist nicht der direkte Elternprozess jedes laufenden Prozesses. Viele dieser Hintergrunddienste laufen nicht ständig: launchd registriert sie und startet sie bei Bedarf, wenn ein passendes Ereignis eintritt – eine sichere Verbindung, die trustd braucht, eine Datei für einen Importer, eine XPC-Nachricht von einer App – und lässt sie danach wieder in den Leerlauf gehen. Deshalb verändert sich die Liste, während Sie arbeiten, und deshalb bringt Force Quit oft nichts: launchd startet den Prozess beim nächsten Auslöser neu. Das verändert den Blick auf die ganze Liste. Sie sehen keine Programme, die jemand bewusst gestartet hat, sondern einen Pool kleiner Dienste, die das System startet und stoppt, sobald Arbeit ankommt – genau deshalb ist das Verhalten über die Zeit, nicht bloße Anwesenheit, das Signal, dass etwas nicht stimmt.
Wo eine Erklärungsebene hilft
Die Aktivitätsanzeige liefert Prozessdaten und Detailansichten. Die Status-Ansicht von Mole kann verständlichen Kontext und Trends ergänzen, aber eine Erklärung nur aufgrund eines Namens ist lediglich eine Ausgangshypothese. Pfad, Eigentümer, Signatur und Verhalten entscheiden, ob der aktuelle Prozess der erwartete ist.
Eine wiederholbare Prozessprüfung
Notieren Sie Prozessname, Benutzer, Pfad, Parent, Signatur, CPU- und Speicherverlauf, geöffnete Dateien und Auslöser. Samplen Sie ihn, während das Problem auftritt, und beenden Sie die anfragende App oder Eingabe, bevor Sie den Daemon anfassen. Diese Methode unterscheidet gewöhnliche Hintergrundarbeit, einen hängenden Vendor-Helper und einen nachgeahmten Namen deutlich besser als eine reine Liste von Prozessdefinitionen.