什么是“ secd”过程?


19

我想知道secd在OSX Yosemite下做什么处理。我很确定我已经看到此过程在早期的MacOS版本中运行,但是我不记得它大胆地吞噬了所有可用内存...

我有三台运行优胜美地的计算机,每台计算机都有不同的配置。这三个人的病情持续了三天到一个星期。以下是secd取得的成就:

  • 在具有4GB内存的MacBookAir 2011上,将700MB分配给 secd
  • 在配备6GB内存的iMac 2008上,将2GB分配给 secd
  • 在配备12GB内存的iMac 2011上,将4GB分配给 secd

在所有三台计算机上,这secd是内存中最大的进程(大于kernel task),我怀疑它在我最近因优胜美地的到来而造成的速度下降中发挥了作用。我肯定知道该过程会在内存中扩展到过大的大小,并在其他地方需要时释放内存。唯一的问题是释放内存的速度不是那么快,并且在过程意识到必须撤退之前,大多数时间性能都会受到影响。

关于该过程是什么,以及为什么它如此庞大,我在网络上的搜索并没有得出可靠的结论。我想我不是唯一经历过这种情况的人。任何提示,不胜感激。

如以下建议secd与Apple钥匙串有关。以下是活动时(在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

还不清楚的是该进程对它所占用的所有内存做了什么,以及为什么它会膨胀太多。


2
你的记忆是对的。secd在小牛上运行。快速分析时,没有记录该守护进程,这很糟糕,可能是一堆废话。该守护进程在中/usr/libexec/secd
2014年

@danielAzuelos它在小牛身上表现出相同的癌变行为吗?
retrography

2
根据Plist,secd用于管理云钥匙串,而不是本地钥匙串。
Ruskes 2014年

2
刚刚发现:在未secd运行的情况下,Messages每次都要求我输入密码。
有趣的是

1
→Mah:在Maveriskc上,secd具有VSZ = 2.4 GB和RSS = 3 MB。secd从5天开始运行的系统上运行了84 s。
2014年

Answers:


20

如果不是很明显,那只是一个猜测。但希望它能给您带来一些线索。

首先,这是您可以从程序名称中找出的内容。如果您运行命令/bin/ls /usr/libexec | sort -f | egrep '.*d$'(本刊中的所有文件/usr/libexec结尾的d),你会发现ftpdhiddnetworkdsystemstatsd,和很多在结束程序d。“ d”代表“守护程序”,它基本上意味着总是在后台运行的帮助程序进程。将sec极有可能代表“安全”。所以secd是“安全守护”。这是有道理的,因为您说过它看起来可以与钥匙串东西一起使用。

守护程序有什么意义?一些守护程序保持运行以执行某些正在进行的任务。hidd(“人机接口设备守护程序”)是负责处理鼠标/键盘/触控板输入的过程。其他一些守护程序则执行许多其他程序需要的一些常见任务。应用程序可以简单地告诉守护程序做某事,而不是让代码自己做。所以secd大概会是这样的,但是涉及到钥匙串。

但是到底是什么呢?看起来它实际上无法处理钥匙串的正常使用,因为在禁用secdLaunchAgent 之后我仍然可以使用钥匙串。

检查LaunchAgent提供了一个线索:

看起来secd负责将钥匙串与iCloud同步?

那你该怎么办?尝试以下一项或多项:

  1. 如果不需要iCloud钥匙串同步,请在iCloud首选项中将其关闭。
  2. 使用launchctl它似乎禁用的secd,如果不给任何不利的影响。
  3. 如果需要iCloud钥匙串同步,请查看是否有大量钥匙串项目,然后删除不需要的项目。
  4. 如果在旧钥匙链中遗留了不必要的工件,则也许可以重建您的钥匙链(制作一个新的钥匙链,将所需的物品移入其中,然后将其移到旧的钥匙链上)。

这是很棒的细节。第2步应该有一个星号-请注意您已禁用此功能,因为Apple通常会为此添加一些新功能,而Mac会在此情况下损坏,因此请记住不时将其重新打开并重新考虑禁用的决定系统守护程序。
bmike

再次-很棒的答案,它解释了如何对任何守护程序进行逆向工程,而不仅仅是对没有正确记录的守护程序。
bmike

5

程序/ usr / libexec / secd是OS X的一部分,是正常的安全过程。该文档说它与“流程的运行时安全策略”有关。您可以使用以下命令检查关联的进程:ps -ef|grep sec[iud]

在我的Mac上,我是501用户,因此您有一个登录用户的输出:

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

您可以看到它securityd以root用户(PID 58)身份启动,然后以用户(PID 205)身份启动。实际上是secd执行“工作”,即使您未注销和登录也可以重新生成。要弄清楚为什么您要使用额外的资源,如果不深入研究fsusage以及其他一些命令来窥视正在运行的进程以及查看日志文件,这将非常困难。最好的选择是向Apple提交错误,然后记录如何使它行为不当-尤其是在重新启动后可以重现该错误的情况下。

目前还没有一个“man页” secd和一个secinitd是微薄的最好的。提交针对Apple的文档错误是一种要求纠正文档不足的方法。


3

据我所知,该过程(确实不多)是与Mac的钥匙串有关。您可以做的是在活动监视器中找到,然后单击Cmd + I以获取有关它的信息。

您可以尝试做的一个技巧是运行Keychain急救,方法是转到Spotlight中的Keychain Access,打开“ Keychain Access”菜单,然后从那里选择“ Keychain First Aid”选项并按照说明进行操作。

希望小费有用!


钥匙串急救说我的钥匙串很好!在所有三台计算机上。
retrography

El Capitan中的“钥匙串访问”下有一个选项(至少也可能存在于以前的版本中)-重置“我的默认钥匙串”的首选项“恢复为出厂默认设置并创建一个新的空“登录”钥匙串。您当前的默认钥匙串将移开,但不删除”。我这样做后,securityd_service就从51-53%的CPU变为0-1.5%。这样做后,您需要重新登录iCloud-我还没有发现其他问题。
Oskar Austegard'8

1
我刚刚从Mavericks升级到Sierra,发现按照您的建议重置了钥匙串之后,secd CPU从接近100%消失了。丢失了所有保存的网站密码,不得不重新登录到我的日历同步等等,但是至少我可以再次使用计算机。谢谢。
Walter Nissen

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.