.Dd 1 May, 2009 .Dt launchd 8 .Os Darwin .Sh NAME .Nm launchd .Nd System wide and per-user daemon/agent manager .Sh SYNOPSIS .Nm .Op Fl d .Op Fl D .Op Fl s .Op Fl S Ar SessionType .Op Ar -- command Op Ar args ... .Sh DESCRIPTION .Nm manages processes, both for the system as a whole and for individual users. The primary and preferred interface to .Nm is via the .Xr 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. .Pp During boot .Nm is invoked by the kernel to run as the first process on the system and to further bootstrap the rest of the system. .Pp You cannot invoke .Nm directly. .Sh ENVIRONMENTAL VARIABLES .Bl -tag -width -indent .It Pa 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. .El .Sh NOTES In Darwin, the canonical way to launch a daemon is through .Nm 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. .Pp In the .Nm 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. .Pp If you wish your service to run as a certain user, in that user's environment, making it a .Nm launchd agent is the ONLY supported means of accomplishing this on Mac OS X. In other words, it is not sufficient to perform a .Xr setuid 2 to become a user in the truest sense on Mac OS X. .Sh FILES .Bl -tag -width "/System/Library/LaunchDaemons" -compact .It Pa ~/Library/LaunchAgents Per-user agents provided by the user. .It Pa /Library/LaunchAgents Per-user agents provided by the administrator. .It Pa /Library/LaunchDaemons System-wide daemons provided by the administrator. .It Pa /System/Library/LaunchAgents Per-user agents provided by Mac OS X. .It Pa /System/Library/LaunchDaemons System-wide daemons provided by Mac OS X. .El .Sh SEE ALSO .Xr launchctl 1 , .Xr launchd.plist 5 ,