1 .\" Copyright (c) 2002, Apple Computer, Inc. All rights reserved.
8 .Nd Mach service naming (bootstrap) daemon
14 .Op Fl r Ar name-in-existing-server
17 is a daemon that maintains various mappings between service names and
18 the Mach ports that provide access to those services. Clients of mach_init
19 can register and lookup services, create new mapping subsets, and
20 associate services with declared servers. The mach_init daemon will
21 also be responsible for launching (and/or re-launching) those service
22 providing servers when attempts to use one or more of the associated services
25 The options are as follows:
32 starts in normal (non-debug) mode. This is the default.
44 forks during initialization so that it doesn't have to be put in
45 the background manually by the caller.
51 to register itself in a previously running copy of
53 under the service name
54 .Ar name-in-existing-server.
55 This is most useful when debugging new instances of
57 itself, but can also be used for robustness or to allow the subsequent
59 processes to run as a non-root user. As mach_init is often used to
60 launch servers, this could be more secure. However,
62 will not allow a server declaration to specify a user id different
63 than that of the requesting client (unless the client is running as root).
64 So it shouldn't be required for a secure configuration.
69 is provided through the bootstrap series of RPC APIs
70 over service ports published by mach_init itself. Each Mach task has
71 an assigned bootstrap port retrieved via task_get_bootstrap_port().
72 These bootstrap port registrations are inherited across fork().
74 The service registrations are grouped into subsets, providing a level
75 of security. Only processes with access to the subset's bootstrap port
76 will be able to register/lookup Mach ports within that subset. Lookups
77 from within a subset will search the subset first, then move on to its
78 parent, and then its grand-parent, etc... until a string name match is
79 found or the top of the bootstrap tree is reached. Subsets are sometimes
80 associated with login sessions to protect session-specific ports from being
81 exposed outside the session.
85 is responsible for launching the traditional BSD process control initialization
89 mach_init -d -r com.company.bootstrap
92 will start in debug mode, and register itself in an already running
95 under the service name com.company.bootstrap.
98 Sending a SIGHUP to a running mach_init will toggle debug mode.