macOS uses launchd to start and supervise system daemons and user agents. A property-list configuration describes the program, environment, triggers, output paths, and whether it should restart. User agents run in a user's session; system daemons run outside a login session.
Use `launchctl` to load, bootstrap, inspect, and stop jobs. Keep service files explicit and least-privileged, and write logs somewhere the owning user or service can access.