Setting up Mac OS X 10.5 Leopard (My old 10.4 Tiger page is here....)  [HOME][CV][PUBS][MAC]
Mac OS X is a flexible operating system but there are often useful tips and tricks to set it up to your liking. This page is intended to help new inductees quickly set up their Macs for scientific analysis, and as a useful reminder for the rest of us.

This page was specifically directed at members of Robert Brunner's research group in the Astronomy Department at the University of Illinois. But, I've maintained a link here at the University of Wyoming for anyone that might have found it useful.

Notes and disclaimers: 1) if the most recent releases of any of the software I discuss should taint the setup of your Mac in some way, don't blame me - it's either their fault or your fault; 2) I tend to thrash the "sudo" command to death to help people troubleshoot where it's needed (try "sudo -s", to put you in a root shell); 3) this page was accurate at the time of posting (March 5th, 2009) and something (probably something small) was updated on - but I don't intend to make regular updates.


Getting Started X11 opens a single default window when I click on the icon Unix Shells Initialization Files How do I Set My Default Login Shell (and forward Xwindows) for Remote Logins? Spaces: Virtual Desktops MacPorts Python, Numerical Python and IRAF SuperMongo VNC
Hosting Web Pages Backing up Directories: Time Machine I restored using Time Machine and my web pages vanished! TeXShop CVS/Kerberos Public/Private Key Encryption Customizing arXiv Cron and launchd No more processes

Getting Started Install X11

To really get going with Mac OS X you need X11. Even if you already have a version installed, I recommend installing the latest version of xquartz. It's an easy package installer. My reason for recommending xquartz is that "Spaces" (which we'll discuss later), Apple's proprietary software for splitting your screen across multiple desktops, can be painful without an up-to-date version of xquartz.

X11 opens a default window when I click on the icon The ghost in the machine

OK, so now you have X11 but it has an irritatingly gui-esque habit of opening a single, boring, default X11 window when you click on the icon. If this doesn't annoy you at first, it will when you become an X11 sophisticate with sui generis customizations.

The trick here is that Apple's new launchd client is typically already running a server for X11 in the background when you click on the X11 icon. Thus Apple assumed that clicking on X11 was tantamount to requiring one xterm. To nix this behavior, tell launchd to start a different application upon an X11 launch. Typing this at any X11 prompt worked for me:

prompt> defaults write org.x.X11 app_to_run /usr/X11/bin/xlsclients

I found this hack here.

Unix Shells An Introduction for Those Uninitiated in the Arcane Ways of Unix

This is an IMPORTANT ASIDE FOR GRAD STUDENTS AND ANYONE WHO ISN'T USED TO USING UNIX. Unix is based on a system based on a system that was based on a system, and, consequently, it's a bit like an onion. Historically, there have been many layers, and different people are comfortable working with a different layer. In UNIX speak, these layers are called SHELLS. A Mac OS xterm will open in the bash shell, BUT I USE THE tc-shell and EVERYTHING WRITTEN BELOW WILL ASSUME THIS. Thus, if you're entirely new to UNIX you're now a tc-shell user. Welcome.

To make sure you're ALWAYS IN THE tc-shell you can do several things. You could type "tcsh" every time you open an xterm but this is laborious and you're bound to forget at some point, so I suggest, when you double-click on the X11 icon, to go to Applications on the X11 Toolbar, and under the Customize option create a Name, say, "xterm" that contains the following command (see a screenshot of this):

xterm -e tcsh &

Now, when you run this command from the toolbar, you'll automatically be in the tc-shell rather than bash. If you want a snazzier feel to your xterms create a Name, say, "small xterm" that contains the following command:

xterm -fg white -bg black -sb -sl 500 -geometry 78x24+528-48 -n main -e tcsh &

Try it! Particularly useful is the -sb flag, which creates a scrollbar. The command options, or flags, are described in detail in the manual (type "man xterm" at any prompt).

Initialization Files Start As You Mean To Go On

OK, now you're constantly in the tc-shell when you run X11, you'll need some initialization files in your home directory (i.e. most importantly ~/.tcshrc). There are handy examples on your hard drive at /usr/share/tcsh/examples/, or you can have a look at abbreviated versions of mine. At the minimum, I recommend sourcing the .login, .logout and .tcshrc files in /usr/share/tcsh/examples. By "at the minimum sourcing", I mean creating a file called ".tcshrc" IN YOUR HOME DIRECTORY that contains only the line "source /usr/share/tcsh/examples/rc", creating a second file called ".login" that contains only the line "source /usr/share/tcsh/examples/login" etc. (see /usr/share/tcsh/examples/README). You can "create" these files using a simple editor such as pico (type "pico" in an xterm). Or by typing, e.g:

prompt> echo "source /usr/share/tcsh/examples/rc" >> ~/.tcshrc

at the prompt. (~ is a UNIX abbreviation for your home directory). Once these .files are setup, X11 should work fairly well.

NOTE: DO NOT try to create text files for UNIX using the Macintosh clipboard/notepad/copy-paste function or a Mac-based editor such as Simpletext or *shudder* MSWord as these create files that have rich-text-style Meta-formatting that is gibberish to UNIX.
How do I set my Default Login Shell (and forward Xwindows) for Remote Logins? Just in case things aren't setup right...

It is worth pointing out that nothing in the above officially sets your default login shell to tcsh. If you login remotely, your system will not be aware that it's meant to be in tcsh before running any of the initialization files. This hasn't been a problem for me circa Leopard but as of Snow Leopard the good people at Mac are investing heavily in gnu bash 4.0 as their default, which may trip some things up.

One THING TO CERTAINLY DO if you're having problems remotely logging into xwindows is to check that you have xforwarding set in /etc/sshd_config. Simply edit that file to change "X11Forwarding no" to "X11Forwarding yes". Now see if you can login with ssh -X me@mymachine and make everything play nice.

In addition, there are two simple alternatives that should absolutely ensure your default login shell is tcsh.

A bit of a hack but it will work, is to add the line "tcsh" to the very start of your .login file discussed above. Thusly, when you login, the first thing that will always happen is that you'll be jacked into a tcsh shell.

An alternative is to set up your default user shell in a more systemic way. A snazzy GUI-based way of doing this is to go to "System Preferences" under the apple menu and click on "Accounts" under the "System" panel. Now, make sure you've "Clicked on the lock to make changes" and then click on your account under "my account" while also holding down the ctrl key. A sneakily concealed advanced options menu will appear (see this). Click on this and then under the next panel you can set your default login shell for that user to tcsh. Hat tip to mac os hints.

Spaces: Virtual Desktops Split your screen into multiple desktops

As of 10.5 Mac OS X ships with an application for splitting your screen across multiple desktops, called Spaces. In a highly un-mac-like fashion, Spaces kills many perfectly good older virtual desktop apps such as the excellent and popular Desktop Manager. Hyperspaces is a project akin to Desktop Manager but Spaces doesn't quite suck enough, once you set it up properly, to install anything over it.

Spaces can be accessed in the dock but because it's set up to tie each application to a single desktop space, it tends to try to drag all of your X11 windows onto a single desktop. There are some tricks to help make Spaces work more intuitively and to allow you to split X11 across multiple desktops. Installing the most recent version of Leopard from Software Update helps. Installing the most recent X11 from the xquartz project helps a lot.

After these various installs, Spaces should allow multiple x11 windows across multiple desktops with occasional persistent clicking. It seems to work perfectly if you also set up Focus Follow Mouse (sloppy mouse) behavior. To get traditional X11 focus-follows-mouse behavior rewrite the X11 parameter list defaults by entering the following commands at the prompt

prompt> defaults write org.x.X11 wm_ffm true
prompt> defaults write org.x.X11 click_through -bool true

(Tip on ffm in Leopard from here)

MacPorts MacPorts is a useful way of installing OS X software

I used to use an application called "Fink" to rapidly install useful new software on my Mac. However, I now use MacPorts instead, although Fink is still available. The builders of MacPorts maintain their own excellent documentation and the instructions on their site should allow for easy installation. Once you install it you'll need to add "/opt/local/bin" to your path in .tcshrc; e.g., add this line:

set path = ( $path /opt/local/bin/ )

to your .tcshrc file. For those who remember Fink, /opt is MacPorts version of /sw and is just a directory to ensure that MacPorts installs are kept separate from everything else.

As an example of using MacPorts at the command line, once you've installed it, try the following at the prompt of a (new so that .tcshrc has been reinitialized) shell:

prompt> sudo port selfupdate
prompt> port search ghostview
prompt> sudo port install gv

Now open a new shell and type

prompt> gv

Note that you had to type "sudo" to get root privileges (and were probably asked once for your user password), which will be a recurring theme below.

Some handy software you might want to use MacPorts to install

"gv" - the postscript viewer
"xemacs" - a better class of text editor
"gimp" - the image manipulation software
"abiword" - looks a lot like Microsoft Word but it's free

Note that these can take a long time to install and it's probably worth setting the MacPorts installation going overnight, or when you don't need your machine.

NOTE: Version dependencies, libraries etc. don't always play nice. For this reason, it's probably worth always going through the rigmarole of installing the latest versions of compilers from scratch. I would at least install gfortran and gcc from the GNU homepages or, at least, always install these compilers from the same source (don't for instance, install gcc from the GNU homepage and gfortran over MacPorts).

Python, Numerical Python and IRAF IRAF, Numerical Python, SLALIB, PGPLOT; Scisoft covers all the bases

Although Mac OS X ships with Python, it doesn't ship with all of the Numerical Python modules. Astronomers will probably also need IRAF at some point, and this can be a pain to install. Scisoft neatly solves all of these problems and more.

SNOW LEOPARD NOTE: Britt Lundgren at Yale points out that there have been some problems installing scisoft on Snow Leopard (OS X 10.6) and that these notes may be useful

Download the latest version of Scisoft for Mac OS X. Once it unbundles, it's an easy point-and-double-click install. It should install everything in a directory at the /Applications level called /Applications/scisoft, which you may need to source by adding

source /Applications/scisoft/all/bin/Setup.csh

to your ~/.tcshrc file.

You'll find after the installation that (important things like) python and IRAF will now run from the scisoft binary

prompt> which python
prompt> which ecl

If you install Python using the latest version of scisoft, you should also get Numerical Python (numpy) and the Scientific Pythons (scipy and Scientific) without any further problems.

VNC Be there when you aren't there

Virtual Network Computing (VNC) is a system which allows two computers to share the same desktop. This means you can, say, control your office computer remotely from your home computer, or a laptop, exactly as if you were sitting in front of it. For earlier incarnations of Mac OS X, I used Chicken of the VNC, which is still a great user-friendly front-end. As of Leopard, Mac OS X ships with its own VNC interface, which you can use directly as noted at ihackintosh:

First, to set up the Mac you want to remotely control (the server):

Open "System Preferences" (see this)
Select the "Sharing" panel under "Internet and Network" (see this)
Check the "Screen Sharing" box (see this)
A green button will light up with "Screen Sharing: On" and then smaller text stating "Other users can access your computer at vnc://computername"
Note down the name of your computer for vnc access (you'll need this in step 2, below when setting up the client)
Check the "All users" button under "Allow access for" (or, check "Only these users" and fill in which users on the local machine you want to be able to control the desktop)
Click the "Computer Settings" button
This will reveal a new window under which you should check "Anyone may request permission to control screen"
In the same window check the "VNC viewers may control screen with password" box and choose a password. This option allows computers running VNC software, such as Chicken of the VNC to access your machine

Now,to access the server Mac from a remote machine (the client):

Click on the background of your desktop to call Finder, then press the "command" key and "k" together. This will bring up a "Connect to Server" window (see this)
Input "vnc://computername" (or "vnc://ipaddress") for the VNC server to which you wish to connect (see step 5, above, under setting up the server)
If the server is using another port besides the default (5900), add a colon and the port number after the computer name (or ip address)
Click the "Connect" button
If everything runs smoothly, you will have the option to connect as a registered user or by asking for permission
If you elect "registered user" you will need to enter a username and password for an account on the server computer
If you elect to "ask for permission" someone will need to be at the remote computer to click "allow"

SuperMongo SM is a handy plotting package but it is not freely available. If you don't have a license (Illinois astronomy does), you can buy it here

NOTE: I no longer use SuperMongo so have not tried out these installation instructions. If somebody successfully installs SM on Leopard and needs to deviate from the instructions below, let me know.
NOTE2: The good people at scisoft now provide an installer for SM. If you mail them and state you have an SM license they will likely provide you with their installer, which is simple point-and-click.

Graduate students (etc.) in Robert's group can ask me for SuperMongo and I'll supply them with the tarball. I recommend installing it in /usr/local as this is the default for many other installations.

Assuming the SM tarball is on your Desktop (and that you've already got a directory /usr/local and don't have to make it first), start by unbundling the tarball in a /usr/local/sm directory

prompt> sudo mkdir /usr/local/sm
prompt> cd /usr/local/sm
prompt> sudo mv ~/Desktop/sm2_4_20* .

If the tarball hasn't already been unbundled by StuffIt Expander, unbundle it.

prompt> sudo tar -zxvf sm2_4_20.tar.gz

A directory with the latest SM version number will be created and we're ready to configure the install.

prompt> cd sm2_4_20
prompt> sudo set_opts

You will now be asked some questions. Just hit "return" for the default in all cases, except when asked what device to use - you should type "x11" and then hit "return". When set_opts has (successfully) exited, edit the src/options.h file as prompted to remove the first seven lines of comments, accepting that you're licensed to use SuperMongo. Now everything should make without a hitch.

prompt> make
prompt> sudo make install

NOTE: Cedric Grenon, a grad student at Queen's University in Kingston, Ontario points out that on his MacBook Pro running 10.5 (Leopard) he encountered a "/usr/bin/ld: cannot find -lX11" error, which he solved by changing the following line in the Makefile (src/Makefile):

substitute XLIB11 = -lX11 for XLIB11 = -L/usr/X11R6/lib -lX11 (first you should mv up to the /src directory).

As I noted, I don't use SM anymore but have found in general that adding -L/usr/X11/lib to the architecture flags in Makefiles (note the drop of "R6") finds the X11 C libraries on my machine.

You will need a .sm file in your home directory (see my examples). Supermongo will still run without a .sm file but only with certain annoying font and key-mapping problems, so create a .sm file. Unless it's already there, /usr/local/bin will need to be added to your path in your .tcshrc file (see my examples). Now, typing "sm" in a (new) shell should take you to the sm prompt and bring up an X11 interface.

If you've never used SM before there's a tutorial. If you've used it before and still have problems, it's always a good idea to RTFM.

Hosting Web Pages Publish documents on the WWW

To turn on Apache (the webserver) on your Mac, click on the Apple icon and then "System Preferences" and select "Sharing" under "Internet and Network". Now click the box marked "Personal Web Sharing". Your Mac will inform you of two possible websites; the computer website and your personal website.

To publish a user home page hosted on your Mac, modify the index.html file in ~/Sites. To publish a home page at your Mac's website, modify the index.html file in /Library/WebServer/Documents. If you're comfortable with your knowledge of web security, you could also publish CGI scripts in /Library/WebServer/CGI-Executables.

Backing Up Directories: Time Machine Time Machine is by far the nicest thing about Leopard

Whichever Apple employee came up with Time Machine deserves a huge bonus. Already I know of 3 people (myself included) using Leopard that suffered a system crash. This has happened to all of us before (usually right before we saved our undergraduate end-of-term reports onto 8-inch floppy) and it has historically been incredibly painful. Now, if you have Time Machine turned on, and an external drive connected to your machine, when you reboot after a crash you will be asked from which version of your machine you would like to restore, in various time intervals, going back as far as you have had available backup disk. It works (almost) seamlessly.

Time Machine is so very, very special that about all I can say about it is that it really, really makes it worth spending a hundred bucks on an external drive. Also, If you reduce large amounts of data while running other code, playing around in IDL and writing Tex documents (like me), and you find that the hour-long backups of Time Machine can slow you down...well, you can always change that.

If you don't have an external device to back up to, and would like to utilize some sort of complex central storage approach across a network, there's always my old pre-Leopard script. This should still work just fine but will require reading up on key encryption and how to automate scripts using cron or launchd in Leopard.

I restored using Time Machine and my web pages vanished! Bugs: nothing new under the Sun but lots of old things we don't know

If you notice that after a Time Machine restore, all of your web pages have died, that's because Time Machine has failed to restore Apache. These commands (from here) should reinitialize Apache

prompt> sudo apachectl stop
prompt> sudo mkdir /var/log/apache2
prompt> sudo chown -R root:wheel /var/log/apache2
prompt> sudo chmod -R 755 /var/log/apache2
prompt> sudo apachectl start

This will turn Apache off, create the Apache logging folder with the correct permissions, and then turn Apache back on. This is all due to a bug in system restore which has been reported to Apple, but who knows when it will be fixed. Hey, maybe it's fixed already.

TeXShop Native TeX for Mac OS X

The best version of TeX that we've come across for Mac OS X is TeXShop. It's quite a complicated installation but it's very well documented. One splendid feature of TeXShop is the ease with which you can typeset a document in real time as you code it. I think it installed first time on my Mac (and it should, 'cos it's written in Cocoa) but if anyone in the group has installation problems, mail me and we'll make a note here. There are also a number of nifty TeXShop add-ons, including GUI support for equations and bibliographies here.

Being native to Mac OS X TeXShop always uses pdf rather than postscript. You can still include encapsulated postscript figures, though, if you add to or modify the documentstyle command to resemble


Or, if you don't have a documentstyle command Adam Rengstorf suggests this alternative


The {mn} and {aastex} commands here are, of course, examples of style files used by two popular astronomy journals. Alexander Karim points out that this will still fail with certain versions of TexShop unless you go to the "Typeset" drawer and choose "TeX & DVI" instead of "pdftex".

CVS/Kerberos Kerberos and the LCDM common user repository

Robert Brunner has written a pdf document on how members of the Laboratory for Cosmological Data Mining can use CVS to back up files to the LCDM common user space. This is particularly useful for keeping track of pieces of software that one of us has written but that we all might want to use and for keeping tabs on which version of a piece of software we've written works.....

NOTE: the first section of Robert's document also contains a useful tutorial concerning setting up the network authentication protocol Kerberos on Mac OS X. Basically, Kerberos is a protocol to create authentication tickets that enable you to securely move between networked machines. I've put the protocol file that worked for me in my examples.

To extend Robert's instructions on setting up the CVSROOT environment variable: If your ncsa username differs to that on your local machine, you could set CVSROOT in the following manner (this, of course, is the c-shell example - Robert tends to give bash shell examples):

prompt> setenv CVSROOT ""

NOTE: before setting up CVS, you will need to mail the ncsa helpdesk and ask for access to the CVS repository.

Public/Private Key Encryption Access remote accounts without typing a password

Adam Rengstorf supplied me with a way of setting up public/private key encryption so that you can access a remote machine without having to type your password. First you need to generate an access key....type

prompt> ssh-keygen -t dsa

and accept the default directory for storing the key. Enter an empty pass-phrase, too. Note that typing "sudo" before "ssh-keygen" will generate a pass-key for root.

Now, ftp into the remote machine and transfer the file generated by launchd keygen ("" - keygen will echo which directory it stored the file in) to your (remote) home directory.

Finally, log into the remote machine that you want free access to and append the information in the key-file to your .ssh/authorized_keys file (or create it if it doesn't exist)

REMOTE MACHINE prompt> cat >> .ssh/authorized_keys

Now, to see if it works, open a window on your machine and ssh to the remote machine

prompt> ssh remoteusername@remotemachinename

Access should now be granted without inputting a password. Of course, if "remoteusername" is the same as your username on your machine, there's no need to enter it. If you typed "sudo" before "ssh-keygen", then it's root whom has free access and you will have to type

prompt> sudo ssh remoteusername@remotemachinename

unless, of course, you're powerful enough that you could store the key in root's home directory on the remote machine.

Customizing arXiv Why waste time trawling new arXiv listings that don't interest you?

NOTE: I updated to version 1.03 on April 30th, 2008 to reflect a change in arXiv's primary url for astrophysics abstracts. If you have an earlier version you may want to grab the newer version.

Obviously, we don't always have time to read every entry on arXiv. Further, it's a known effect that being listed higher on arXiv increases your exposure, hence biasing citation rates. I've written a handy little Python script that will grab the new arXiv listings page, select only those abstracts that interest you, and open a browser window to display the results (kind of an Arxivsorter that you can control yourself). It should be reasonably functional on any platform that runs Python but has certain features that are geared specifically to Mac OS X. It runs from the command line. You can get it here (on Mac OS X; place your cursor over, the most recent version, hold down the alt/option key and click the mouse-button once).

By the way, if you found this code useful, consider linking to my website as a courtesy, rather than just passing the source code around.

If you downloaded it to the desktop, you can check it works by double-clicking the icon, then double-clicking the generated applescript bundle. It should return today's arXiv new listings with the default search parameters. The easiest way to run with customized parameters is to run it under UNIX (from an xterm). So put it in a directory that's in your path (such as /usr/local or .). Here are some of the most common example uses:

prompt>python -help
Print a help message and usage options

prompt>python QSO supernova -v star
A basic search that will reject all occurences of star and then return today's arXiv abstracts that contain QSO or supernova

prompt>python QSO supernova -v star -ho
The same search with -ho, the highlight option, flagged. This will return arXiv with all occurences of star highlighted in red, all occurences of QSO or supernova highlighted in green and the abstracts ordered so that matches with QSO and supernova are at the top of the returned page and matches with star are at the bottom of the returned page

prompt>python cluster group quasar QSO lens supernova ' AGN' correl -v star magnet globular branch
As an observational cosmologist interested in quasars, large-scale structure and lensing, this is something like my typical search (I change it as my interests evolve). The quote marks around AGN force a space before the word, meaning that words like 'mAGNitude' will not be searched for. Alternatively, the -cs flag could be used to make the search case-sensitive.

NOTE: it is inadvisable to run as root as it will write to directories as root rather than as myusername and subsequently running it as myusername will fail to overwrite these directories. From the command line, will halt with a warning message if you run it as root. You can force it to run as root by adding a -root flag, if this is what you really intend to do. If you want your typical arXiv new listings to pop up daily without prompting, why not set up a cron or launchd job? Read on...

Cron and launchd Automating your code - the old right way and the new right way

Say you've created a piece of code and you want it to run every day. The old right way of doing this would be using the scheduling daemon cron, which would read scheduling requests from your crontab file. Lines in the crontab file would look something like this

00 6 * * 1-5 myuserame /Users/myusername/scripts/astroph.csh

if, say, you wanted to regularly run the astroph.csh script as myusername (in this case every weekday morning at 6am).

crontab still exists in some form in Leopard. You can edit it with (where myfavoriteeditor is, e.g., pico):

prompt> setenv EDITOR myfavoriteeditor
prompt> crontab -e

Populate crontab with a request, as outlined above, restart your machine, and your crontab should be running.

As of Leopard, crontab is completely deprecated and is now just a front end for launchd, Apple's uber-scheduler, so it's probably worth just taking a little time to learn how launchd works.

First make ~/Library/LaunchAgents/ (if it doesn't exist already)

prompt> mkdir ~/Library/LaunchAgents

Now, copy some example files into ~/Library/LaunchAgents while changing their names into something more user specific:

prompt> cp /System/Library/LaunchDaemons/ ~/Library/LaunchAgents/com.$USER.periodic-daily.plist
prompt> cp /System/Library/LaunchDaemons/ ~/Library/LaunchAgents/com.$USER.periodic-weekly.plist
prompt> cp /System/Library/LaunchDaemons/ ~/Library/LaunchAgents/com.$USER.periodic-monthly.plist

Just looking at the xml for these files should usefully indicate how you make daily, weekly, and monthly periodic jobs. For instance, the default for the periodic daily has "Hour" and "Minute" keywords, probably set to the defaults "3" and "15". If you wanted to run something every day at 8:30am, you would change these keywords to "8" and "30". Note that one keyword that isn't in the example files above is "Weekday". Feel free to add it. It takes the integer values 0-6 for Sunday-Saturday, as in the cron formalism.

Storing these files in ~/Library/LaunchAgents runs them locally for you as $USER once Apple's uber-scheduler, launchd, knows about them. The easiest way to initialize these files for launchd is using the launchctl command, e.g.

prompt> launchctl load ~/Library/LaunchAgents/com.$USER.periodic-daily.plist

but launchctl is pretty powerful stuff, and can be used to start and stop all sorts of things (actually, technically it can be used to start and stop everything), so make sure you know what you're doing...particularly if you try invoking the "unload" command! Another (safer, if you're unsure) way of starting LaunchAgents is by restarting your machine.

If you like GUIs then Lingon can do a lot of this for you (note that you will still have to create the ~/Library/LaunchAgents directory if it doesn't yet exist).

no more processes The zombies that won't die

After installing 10.5, I began to notice that my machine would sometimes freeze up and inform me that "no more processes" could be run. This was somewhat surprising as, although I run a gazillion things simultaneously, this hadn't happened to me on a UNIX system for nearly a decade. A quick

prompt> ps -e

reveals that a lot of these processes are related to Address Book synching. I found that closing and restarting Apple's Mail had the effect of killing the processes (which, eventually will begin to spawn again). The problem appears to be that Mail is not informing zombie processes when it is finished with them. Killing Mail every few weeks (in my case) is a somewhat unsatisfying solution. It does seem to work, though. Failing that, rebooting your machine, or at least logging out-and-back-in should kill the zombies.
Department of Physics & Astronomy, University of Wyoming, 
1000 E. University, Dept. 3905, 
Laramie, WY 82071, USA
    Page maintained (and updated)