launchd(8)

NAME
launchd - System wide and per-user daemon/agent manager

SYNOPSIS
launchd [-d] [-D] [-s] [-S SessionType] [-- command [args ...]]

DESCRIPTION
launchd manages processes, both for the system as a whole and for individual users. The primary and preferred interface to launchd is via the launchctl(1) tool which (among other options) allows the user or administrator to load and unload jobs. Where possible, it is preferable for jobs to launch on demand based on criteria specified in their respective configuration files.

During boot launchd is invoked by the kernel to run as the first process on the system and to further bootstrap the rest of the system.

You cannot invoke launchd directly.

ENVIRONMENTAL VARIABLES

LAUNCHD_SOCKET
    This variable is exported when invoking a command via the launchd command line. It informs launchctl how to find the correct launchd to talk to.

NOTES
In Darwin, the canonical way to launch a daemon is through launchd as opposed to more traditional mechanisms or mechanisms provided in earlier versions of Mac OS X. These alternate methods should be considered deprecated and not suitable for new projects.

In the launchd lexicon, a "daemon" is, by definition, a system-wide service of which there is one instance for all clients. An "agent" is a service that runs on a per-user basis. Daemons should not attempt to display UI or interact directly with a user's login session. Any and all work that involves interacting with a user should be done through agents.

If you wish your service to run as a certain user, in that user's environment, making it a launchd agent is the ONLY supported means of accomplishing this on Mac OS X. In other words, it is not sufficient to perform a setuid(2) to become a user in the truest sense on Mac OS X.

FILES
~/Library/LaunchAgents
    Per-user agents provided by the user.
/Library/LaunchAgents
    Per-user agents provided by the administrator.
/Library/LaunchDaemons
    System-wide daemons provided by the administrator.
/System/Library/LaunchAgents
    Per-user agents provided by Mac OS X.
/System/Library/LaunchDaemons
    System-wide daemons provided by Mac OS X.

SEE ALSO
launchctl(1), launchd.plist(5),