Configuring Startup Items

Starting up all the various system service daemons by hand every time the machine starts up would be quite a chore. As part of its coordination of the startup process, the SystemStarter application scans and runs special scripts kept in /Library/Startup Items/. To have a daemon launch at startup and be owned by the root user (so that it is running when the first user logs in, and continue to run until the machine is shut down or it’s explicitly killed), add to this collection of startup items or modify an existing one, if applicable. (More startup scripts are in /System/Library/Startup Items/, but, like everything else in the /System/ folder, are not meant to be messed with.)

Each object under Startup Items is a folder named after its function. Inside it lay two important files: a parameter list of options in StartupParameters.plist (see Section 13.8.3) and the script itself, which must have the same name as the folder.

For example, this is the entirety of /System/Library/StartupItems/SSH/SSH:

#!/bin/sh [1] . /etc/rc.common [2] ## # Start up secure login server ## if [ "${SSHSERVER:=-NO-}" = "-YES-" ]; then [3] ConsoleMessage "Starting Secure Login Server" [4] if [ ! -f /etc/ssh_host_key ]; then [5] echo "Generating ssh host RSA1 key..." ssh-keygen -t rsa1 -f /etc/ssh_host_key -N "" -C "$(hostname)" fi if [ ! -f /etc/ssh_host_rsa_key ]; then [5] echo "Generating ssh host RSA key..." ssh-keygen -t rsa -f /etc/ssh_host_rsa_key -N "" -C "$(hostname)" fi if ...

Get Mac OS X in a Nutshell now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.