+++ /dev/null
-.\" Copyright (c) 2002, Apple Computer, Inc. All rights reserved.
-.\"
-.Dd March 20, 2002
-.Dt MACH_INIT 8
-.Os "Mac OS X"
-.Sh NAME
-.Nm mach_init
-.Nd Mach service naming (bootstrap) daemon
-.Sh SYNOPSIS
-.Nm mach_init
-.Op Fl D
-.Op Fl d
-.Op Fl F
-.Op Fl r Ar name-in-existing-server
-.Sh DESCRIPTION
-.Nm mach_init
-is a daemon that maintains various mappings between service names and
-the Mach ports that provide access to those services. Clients of mach_init
-can register and lookup services, create new mapping subsets, and
-associate services with declared servers. The mach_init daemon will
-also be responsible for launching (and/or re-launching) those service
-providing servers when attempts to use one or more of the associated services
-is detected.
-.Pp
-The options are as follows:
-.Bl -tag -width Ds
-.It Fl D
-When the
-.Fl D
-option is specified,
-.Nm mach_init
-starts in normal (non-debug) mode. Logging is minimal (only security-related
-and process launch failures are logged). Core dumps are disabled for launched
-servers. This is the default.
-.It Fl d
-When the
-.Fl d
-option is specified,
-.Nm mach_init
-starts in debug mode. Logging is extensive. Core dumps will be taken for any
-launched servers that crash.
-.It Fl F
-When the
-.Fl F
-option is specified,
-.Nm mach_init
-forks during initialization so that it doesn't have to be put in
-the background manually by the caller.
-.It Fl r
-Using the
-.Fl r
-option tells
-.Nm mach_init
-to register itself in a previously running copy of
-.Nm mach_init
-under the service name
-.Ar name-in-existing-server.
-This is most useful when debugging new instances of
-.Nm mach_init
-itself, but can also be used for robustness or to allow the subsequent
-.Nm mach_init
-processes to run as a non-root user. As mach_init is often used to
-launch servers, this could be more secure. However,
-.Nm mach_init
-will not allow a server declaration to specify a user id different
-than that of the requesting client (unless the client is running as root).
-So it shouldn't be required for a secure configuration.
-.El
-.Pp
-Access to
-.Nm mach_init
-is provided through the bootstrap series of RPC APIs
-over service ports published by mach_init itself. Each Mach task has
-an assigned bootstrap port retrieved via task_get_bootstrap_port().
-These bootstrap port registrations are inherited across fork().
-.Pp
-The service registrations are grouped into subsets, providing a level
-of security. Only processes with access to the subset's bootstrap port
-will be able to register/lookup Mach ports within that subset. Lookups
-from within a subset will search the subset first, then move on to its
-parent, and then its grand-parent, etc... until a string name match is
-found or the top of the bootstrap tree is reached. Subsets are sometimes
-associated with login sessions to protect session-specific ports from being
-exposed outside the session.
-.Pp
-The first instance of
-.Nm mach_init
-is responsible for launching the traditional BSD process control initialization
-daemon (/sbin/init).
-.Sh SAMPLE USAGE
-.Pp
-mach_init -d -r com.company.bootstrap
-.Pp
-.Nm mach_init
-will start in debug mode, and register itself in an already running
-instance of
-.Nm mach_init
-under the service name com.company.bootstrap.
-.Sh NOTE
-.Pp
-Sending a SIGHUP to a running mach_init will toggle debug mode.
-.Sh SEE ALSO
-.Xr init 8