Was ist ein "zweiter" Prozess?

18

Ich frage mich, was der secdProzess unter OSX Yosemite macht. Ich bin mir ziemlich sicher, dass ich diesen Prozess in früheren MacOS-Versionen gesehen habe, aber ich erinnere mich nicht, dass er den gesamten verfügbaren Speicher so kühn verschlungen hat ...

Ich habe drei Computer mit Yosemite, jeder mit einer anderen Konfiguration. Alle drei waren für eine Dauer von drei Tagen bis zu einer Woche in Betrieb. Hier ist ein Überblick über das secdErreichte:

  • Auf dem MacBookAir 2011 mit 4 GB Arbeitsspeicher sind 700 MB zugewiesen secd
  • Auf dem iMac 2008 mit 6 GB Speicher, 2 GB zugewiesen secd
  • Auf dem iMac 2011 mit 12 GB Speicher, 4 GB zugewiesen secd

Auf allen drei Computern secdist der größte Prozess im Arbeitsspeicher (größer als kernel task), und ich vermute, er spielt eine Rolle bei der Verlangsamung, die ich kürzlich mit der Ankunft von Yosemite erlebt habe. Ich weiß mit Sicherheit, dass der Prozess im Speicher auf übermäßige Größen erweitert wird und Speicher freigibt, wenn ich ihn woanders benötige. Das einzige Problem ist, dass es nicht so schnell ist, um Speicher freizugeben, und die meiste Zeit leidet die Leistung, bevor der Prozess erkennt, dass er sich zurückziehen muss.

Meine Suche im Internet kam nicht zu einem soliden Ergebnis, was der Prozess ist und warum er so umfangreich sein sollte. Ich denke, ich bin nicht der einzige, der dies erlebt. Jeder Tipp ist willkommen.

Wie unten vorgeschlagen, secdhat es mit Apple Keychain zu tun. Hier sind die Dateien und Ports, die der Prozess offen hält, wenn er aktiv ist (auf MacBookAir):

/
/usr/libexec/secd
/Users/.../Library/Keychains/7285EFCF-9AF6-53DD-BE44-DA1F59F96620/keychain-2.db-shm
/usr/share/icu/icudt53l.dat
/usr/lib/dyld
/private/var/run/diagnosticd/dyld_shared_cache_x86_64
/dev/null
/dev/null
/dev/null
count=2, state=0x2
/Users/.../Library/Keychains/7285EFCF-9AF6-53DD-BE44-DA1F59F96620/keychain-2.db
/Users/.../Library/Keychains/7285EFCF-9AF6-53DD-BE44-DA1F59F96620/keychain-2.db-wal
/Users/.../Library/Keychains/7285EFCF-9AF6-53DD-BE44-DA1F59F96620/keychain-2.db-shm
/Users/.../Library/Keychains/7285EFCF-9AF6-53DD-BE44-DA1F59F96620/keychain-2.db
/Users/.../Library/Keychains/7285EFCF-9AF6-53DD-BE44-DA1F59F96620/keychain-2.db-wal
/dev/random
/dev/random
/private/var/folders/z_/806bzc396cxgp4s0q17tpfwc0000gn/T/etilqs_y5BDgkbGkBV9ybF
/private/var/folders/z_/806bzc396cxgp4s0q17tpfwc0000gn/T/etilqs_Aw6Q7JhPlil3QNX
/Users/.../Library/Keychains/7285EFCF-9AF6-53DD-BE44-DA1F59F96620/keychain-2.db
/Users/.../Library/Keychains/7285EFCF-9AF6-53DD-BE44-DA1F59F96620/keychain-2.db-wal

Was nicht klar ist, ist, was der Prozess mit all dem Speicher macht, den er belegt, und warum er sich so stark aufbläst.

Retrographie
quelle
2
Dein Gedächtnis ist richtig. secdläuft auf Mavericks. Bei schneller Analyse ist dieser Daemon nicht dokumentiert, das ist schlecht, es könnte sich um eine Crapware handeln. Dieser Daemon ist in /usr/libexec/secd.
Dan
@danielAzuelos Zeigt es dasselbe Krebsverhalten bei Mavericks?
Retrographie
2
Laut Plist wird secd verwendet, um den Cloud-Schlüsselbund zu verwalten, nicht den lokalen.
Ruskes
2
Gerade entdeckt: Ohne zu secdlaufen, fragt Messages mich jedes Mal nach einem Passwort.
Interessanterweise
1
→ Mah: hat auf Maveriskc secdeine VSZ = 2,4 GB und einen RSS = 3 MB. secdlief für 84 s auf einem System, das seit 5 Tagen läuft.
Dan

Antworten:

20

Wenn es nicht offensichtlich ist, ist dies nur eine Vermutung. Aber hoffentlich gibt es Ihnen einige Hinweise.

Als Erstes können Sie Folgendes anhand des Programmnamens herausfinden. Wenn Sie den Befehl ausführen /bin/ls /usr/libexec | sort -f | egrep '.*d$'(dies alle Dateien in drucken /usr/libexecEndung d), werden Sie feststellen ftpd, hidd, networkd, systemstatsd, und viele Programme enden in d. Das "d" steht für "Daemon", was im Grunde genommen einen Hilfsprozess bedeutet, der immer im Hintergrund läuft. Das secsteht sehr wahrscheinlich für "Sicherheit". So secdist der "Sicherheits-Daemon". Was Sinn macht, weil Sie sagten, es sieht so aus, als würde es mit Schlüsselbund-Dingen funktionieren.

Was ist der Sinn von Dämonen? Einige Daemons laufen weiter, um entweder eine laufende Aufgabe zu erledigen. hidd("Human Interface Device Daemon") ist beispielsweise der Prozess, der für die Verarbeitung von Maus-, Tastatur- und Trackpad-Eingaben zuständig ist. Einige andere Daemons führen einige allgemeine Aufgaben aus, die viele andere Programme benötigen. Apps können den Daemon einfach anweisen, etwas zu tun, anstatt Code zu haben, um es selbst zu tun. Also macht secdwohl so etwas, aber bezogen auf den Schlüsselbund.

Aber was genau? Es sieht so aus, als würde es die normale Verwendung des Schlüsselbunds nicht bewältigen, da ich den Schlüsselbund nach dem secdDeaktivieren von LaunchAgent weiterhin verwenden konnte .

Die Überprüfung des LaunchAgent gibt uns einen Hinweis:

Es sieht so aus, als ob secd für die Synchronisierung des Schlüsselbunds mit iCloud verantwortlich ist.

Also, was solltest du tun? Probieren Sie eine oder mehrere der folgenden Methoden aus:

  1. Wenn Sie die iCloud-Schlüsselbundsynchronisierung nicht benötigen, deaktivieren Sie sie in den iCloud-Einstellungen.
  2. Verwenden Sie launchctldiese Option, um secd zu deaktivieren, wenn dies keine nachteiligen Auswirkungen zu haben scheint.
  3. Wenn Sie die iCloud-Schlüsselbundsynchronisierung benötigen, prüfen Sie, ob Sie eine Vielzahl von Schlüsselbundelementen haben, und entfernen Sie diejenigen, die Sie nicht benötigen.
  4. Erstellen Sie Ihren Schlüsselbund möglicherweise neu (erstellen Sie einen neuen Schlüsselbund, verschieben Sie benötigte Elemente in den Schlüsselbund und verschieben Sie ihn über den älteren), falls im alten Schlüsselbund unnötige Artefakte zurückbleiben.
Interessanterweise gibt es
quelle
Das ist ein unglaubliches Detail. Schritt 2 sollte mit einem Sternchen versehen sein. Notieren Sie sich, dass Sie dies deaktiviert haben, da Apple in der Regel einige neue Funktionen hinzufügt und Ihr Mac in diesem Fall abstürzt. Denken Sie also daran, ihn von Zeit zu Zeit wieder einzuschalten und die Deaktivierungsentscheidung erneut zu treffen ein System-Daemon.
bmike
Nochmals - fantastische Antwort, die erklärt, wie man einen Daemon rückentwickelt und nicht nur diesen, der nicht gut dokumentiert ist.
bmike
5

Das Programm / usr / libexec / secd wird als Teil von OS X ausgeliefert und ist ein normaler Sicherheitsprozess. In der Dokumentation wird angegeben, dass es sich um "Laufzeitsicherheitsrichtlinien für Prozesse" handelt. Mit diesem Befehl können Sie die zugehörigen Prozesse überprüfen:ps -ef|grep sec[iud]

Auf meinem Mac bin ich Benutzer 501, daher haben Sie diese Ausgabe für einen angemeldeten Benutzer:

Mac:~ bmike$ ps -ef|grep sec[iud]
    0    58     1   0 Sat12PM ??         0:56.51 /usr/sbin/securityd -i
    0   117     1   0 Sat12PM ??         0:00.15 /usr/libexec/secinitd
    0   171     1   0 Sat12PM ??         0:02.24 /usr/libexec/securityd_service
  501   205     1   0 Sat12PM ??         0:11.74 /usr/libexec/secinitd
  501  2634     1   0 Tue08PM ??         0:08.26 /usr/libexec/secd

Sie können sehen, dass der Prozess securitydals Root (PID 58) und dann als Benutzer (PID 205) gestartet wird, wenn Sie sich anmelden. Der Benutzer secdführt die "Arbeit" aus und kann erneut erstellt werden, auch wenn Sie sich nicht abmelden und anmelden Um herauszufinden, warum Sie zusätzliche Ressourcen verwenden, ist es ziemlich schwierig, ohne Eingriffe fsusageund einige andere Befehle einen Blick auf laufende Prozesse zu werfen und Ihre Protokolldateien zu durchsuchen. Am besten melden Sie einen Fehler bei Apple und dokumentieren anschließend, wie Sie das Fehlverhalten beheben können - insbesondere, wenn Sie es nach einem Neustart reproduzieren können.

Derzeit gibt es keine "Manpage" für secdund die für secinitdist bestenfalls dürftig. Das Einreichen von Dokumentationsfehlern gegen Apple ist eine Möglichkeit, die Behebung des Mangels an Dokumentation zu fordern.

bmike
quelle
3

Was ich über diesen Prozess weiß (der eigentlich keine Tonne ist), ist, dass er etwas mit dem Schlüsselbund des Mac zu tun hat. Sie können im Aktivitätsmonitor auf Cmd + I klicken, um die Informationen dazu abzurufen.

Ein Tipp, den Sie versuchen können, ist, die Erste Hilfe für den Schlüsselbund auszuführen, indem Sie in Spotlight auf Schlüsselbundzugriff klicken, das Menü "Schlüsselbundzugriff" öffnen und dort die Option "Erste Hilfe für Schlüsselbund" auswählen und den Anweisungen folgen.

Hoffe dieser Tipp funktioniert!

jaller200
quelle
Schlüsselbund Erste Hilfe sagt, mein Schlüsselbund ist in Ordnung! Auf allen drei Computern.
Retrographie
Es gibt eine Option in El Capitan (zumindest möglicherweise auch in früheren Versionen) unter "Schlüsselbundzugriff - Einstellungen zum Zurücksetzen meines Standard-Kechains". Setzt die Werkseinstellungen zurück und erstellt einen neuen leeren "Login" -Schlüsselbund. Der aktuelle Standard-Schlüsselbund wird verwendet beiseite geschoben, aber nicht gelöscht werden ". Sobald ich dies getan habe, ging der securityd_service von 51-53% CPU auf 0-1,5%. Sobald Sie dies tun, müssen Sie sich erneut bei iCloud anmelden. Weitere Konsequenzen habe ich noch nicht festgestellt.
Oskar Austegard
1
Ich habe gerade ein Upgrade von Mavericks auf Sierra durchgeführt und festgestellt, dass die zweite CPU nach dem Zurücksetzen des Schlüsselbunds von nahezu 100% gelaufen ist, wie Sie vorgeschlagen haben. Ich habe alle meine gespeicherten Website-Passwörter verloren, musste mich erneut bei meiner Kalendersynchronisierung usw. anmelden, kann den Computer jedoch wieder verwenden. Vielen Dank.
Walter Nissen