helpd takes a lot of CPU
What is this process ?
It's spawned quite often, and uses a lot of CPU & memory.
MacBook Pro 4,1, Mac OS X (10.7)
You can make a difference in the Apple Support Community!
When you sign up with your Apple Account, you can provide valuable feedback to other community members by upvoting helpful replies and User Tips.
When you sign up with your Apple Account, you can provide valuable feedback to other community members by upvoting helpful replies and User Tips.
What is this process ?
It's spawned quite often, and uses a lot of CPU & memory.
MacBook Pro 4,1, Mac OS X (10.7)
I don't know but I'm having the same problem. Little Snitch keeps telling me that it's trying to connect to the network and then the CPU usage spikes for a few minutes. I've killed the process and it just comes back.
Helpd updates all of the Application help files on your Mac.
However, I hate having helpd launching repeatedly and seemingly randomly, taking up 1 gig of RAM, and using so much CPU time that the fans go loudly full blast on my MacBook Pro. I prefer having my MacBook Pro be quiet.
Upon investigation, I found that helpd is controlled by a System LaunchAgent plist which is run on startup:
/System/LaunchAgents/com.apple.helpd.plist
When examining the contents of this plist using XCode, what you find is that:
1. helpd is run when it is loaded by the system at startup or login
2. helpd is run on every Sunday at 2:30 AM
3. the launch agent watches the following folders and runs helpd whenever the folders change:
/Applications/
/Applications/Utilities/
The biggest problem is the watch folders. They change whenever you open them (i.e. their modified date changes when opened). They change when you install a new application. Many applications change their Application folder content when run. etc. etc.
(Lingon is a simplified launch agent and launch daemon editor. Lingon 3, by the way, cannot manage anything other than your own user's launch agents and launch daemons. It is limited by Apple's new App Store rules. Lingon 2 can open up system launch agetns and launch daemons. But it is missing many of the plist fields revealed by using XCode. For example, it will show the /Applications/ watch folder. But there are TWO watch folders - the second one is /Applications/Utilities/ Thus, Lingon may cause problems by modifying the system launch agents and daemon plists by missing several fields. I don't recommend Lingon other than to create your own user launch agents and daemons - with Lingon 2 being a much more capable version)
The easiest solution is to use Xcode or another plist editor to modify the com.apple.helpd.plist to change the watch folders.
I changed /Applications/ to /Applications/Utilities/ and left the second watch folder /Applications/Utilities/
Since I seldom open /Applications/Utilities/ this causes helpd to launch far less often.
You can also just simpliy eliminate the watch folders. This keeps helpd running on Sundays at 2:30 AM or on startup or login.
When users get rid of many older applications, they see helpd launch less often since these older applications may be the ones modifying the /Applications/ folder.
If you have only newer applications or few applications, you don't run into the helpd problem as often or at all. This is why few people complain about helpd. Only the users who have numerous applications (particularly older ones or ones not bought from the App Store) run into this problem.
Here are the contents of the com.apple.helpd.plist:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>EnableTransactions</key>
<true/>
<key>EnvironmentVariables</key>
<dict>
<key>NSRunningFromLaunchd</key>
<string>1</string>
</dict>
<key>Label</key>
<string>com.apple.helpd</string>
<key>LimitLoadToSessionType</key>
<array>
<string>Aqua</string>
<string>LoginWindow</string>
</array>
<key>MachServices</key>
<dict>
<key>com.apple.helpd</key>
<true/>
</dict>
<key>OnDemand</key>
<true/>
<key>Program</key>
<string>/System/Library/PrivateFrameworks/HelpData.framework/Versions/A/Resourc es/helpd</string>
<key>RunAtLoad</key>
<true/>
<key>StartCalendarInterval</key>
<dict>
<key>Hour</key>
<integer>2</integer>
<key>Minute</key>
<integer>30</integer>
<key>Weekday</key>
<integer>7</integer>
</dict>
<key>WatchPaths</key>
<array>
<string>/Applications/</string>
<string>/Applications/Utilities/</string>
</array>
</dict>
</plist>
Awesome write up, Marianco1! I think you have just explained to me how I can keep helpd from driving me nuts with its CPU usage.
One small correction... The file one needs to edit is:
/System/Library/LaunchAgents/com.apple.helpd.plist
The "Library" directory under /System was left out in your path. I'm sure most users comfortable enough to work with a property list file would know this, but I wanted to add it for anyone may not know how to find the file.
Thanks again for putting this together and explaining things so well!
-Bryan
helpd takes a lot of CPU