If it's not apparent, this is just a guess. But hopefully it gives you some leads.
First, here's what you can figure out just from the program name. If you run the command /bin/ls /usr/libexec | sort -f | egrep '.*d$'
(this print all files in /usr/libexec
ending in d
), you'll find ftpd
, hidd
, networkd
, systemstatsd
, and a lot of programs ending in d
. The "d" stands for "daemon", which basically means a helper process that always runs in the background. The sec
very likely stands for "security". So secd
is the "security daemon". Which makes sense because you said it looks like it works with keychain stuff.
What's the point of daemons? Some daemons stay running to either do some ongoing task. hidd
("human interface device daemon"), for example, is the process responsible for handling mouse/keyboard/trackpad input. Some other daemons do some common tasks that many other programs need. Apps can simply tell the daemon to do something instead of having code to do it themselves. So secd
probably does something like this, but related to the keychain.
But what exactly? It looks like it doesn't actually handle normal use of the keychain, since I was still able to use the keychain after I disabled the secd
LaunchAgent.
Inspecting the LaunchAgent gives us a clue:
It looks like secd is responsible for syncing the keychain with iCloud?
So what should you do? Try one or more of these:
- If you don't need iCloud keychain syncing, turn it off in iCloud preferences.
- Use
launchctl
to disable secd if it doesn't seem to adversely affect anything. - If you need iCloud keychain syncing, see if you have a ton of keychain items, and remove the ones you don't need.
- Perhaps rebuild your keychain (make a new keychain, move items you need into it, and move it over the older one), in case there are unnecessary artifacts left over in the old keychain.