Unlockupd works around a bug in lookupd, a system service which is required for proper operation of Mac OS X. If lookupd fails, the system quickly becomes unusable. Unlockupd periodically checks lookupd's status and forces it to restart should it fail.
Unlockupd has undergone a significant amount of testing since July 2004, with no reported problems.
DownloadDownload Unlockupd 1.0 (31 kb .dmg.gz)
If you have already installed Unlockupd 1.0b1, you do not need to install 1.0. The only difference is that the 1.0 download also includes documentation.
Help support unlockupd
Unlockupd is free. But, if unlockupd has helped you out, and you'd like to show a little thanks or help defray hosting costs, feel free to contribute by clicking the donation button below.
How unlockupd works
Unlockupd is a small daemon which periodically polls lookupd. If it detects that lookupd is not responding, it makes a note in the system log and forces lookupd to terminate.
Technical Details
Lookupd is the lookup and caching daemon responsible for handling NetInfo, DNS, and other such requests. Applications typically do not access lookupd directly, but rather, use standardized library functions (such as gethostbyname for DNS) which access lookupd on the application's behalf.
Lookupd has a bug (rdar://3632865) in its cache cleanup code that causes it to randomly crash. CrashReporter, the system crash log agent, does not properly handle lookupd crashes, and as a result, when lookupd crashes, the process is not terminated. Since lookupd has not terminated, mach_init does not respawn lookupd. From this point, any application that attempts to access lookupd, either directly or indirectly, will hang.
Once lookupd stops responding, it becomes difficult, but not
impossible, to recover the system to a usable state. One technique which
works, but is not recommended (for obvious reasons), is to leave a root
shell running and `killall -9 lookupd` when it becomes
obvious that lookupd has died (sudo does not work, since it
requires lookupd's services, as does opening a new terminal window).
How to uninstall unlockupd
You can uninstall unlockupd completely by executing the following commands on the command line, either using sudo, or from a user with the appropriate permissions:
sudo killall unlockupd sudo rm -rf /usr/local/bin/unlockupd /Library/StartupItems/Unlockupd/ /Library/Receipts/unlockupd.pkg/
Version History
1.0 (September 26, 2005) - Documentation added to .dmg.
1.0b1 (July 2004) - First public version.