manpagez: man(ual) pages & more
man launchd(8)
Home | html | info | man

launchd(8)                BSD System Manager's Manual               launchd(8)


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


     launchd manages processes, both for the system as a whole and for indi-
     vidual 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

     launchd also manages XPC services that are bundled within applications
     and frameworks on the system.

     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.


     On Darwin operating systems, the canonical way to launch a daemon is
     through launchd as opposed to traditional POSIX and POSIX-like mechanisms
     or mechanisms provided in earlier versions of OS X. These alternate meth-
     ods 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.

     XPC services which are marked with a ServiceType of System are function-
     ally equivalent to daemons and run in the same environment, sharing the
     same Mach bootstrap namespace. XPC services which are marked with a Ser-
     viceType of User are equivalent to agents with the LimitLoadToSessionType
     key specifying the Background session and run in the same environment,
     sharing the same Mach bootstrap namespace. See launchd.plist(5) for more
     information about user sessions.

     On Darwin platforms, a user environment includes a specific Mach boot-
     strap subset, audit session and other characteristics not recognized by
     POSIX.  Therefore, making the appropriate setuid(2) and setgid(2) system
     calls is not sufficient to completely assume the identity for a given
     user. Running a service as a launchd agent or a per-user XPC service is
     the only way to run a process with a complete identity of that user.


     ~/Library/LaunchAgents         Per-user agents provided by the user.
     /Library/LaunchAgents          Per-user agents provided by the adminis-
     /Library/LaunchDaemons         System-wide daemons provided by the admin-
     /System/Library/LaunchAgents   Per-user agents provided by Apple.
     /System/Library/LaunchDaemons  System-wide daemons provided by Apple.


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


     The Daemons and Services Programming Guide can be found at the following

Darwin                         25 November, 2013                        Darwin

OS X 10.10 - Generated Fri Nov 7 06:16:46 CST 2014
© 2000-2017
Individual documents may contain additional copyright information.