macOS Deployment
Use a LaunchAgent for a daemon that runs while one user is logged in. Use a LaunchDaemon for a shared daemon that starts at boot. These examples use the supported Apple Silicon binary and require administrator access for shared files.
Prepare the Mac
Install a verified binary using Installation, then copy it to a fixed administrator-owned path:
Complete Configuration and Managed Clients. Use
/opt/nvidia/bin/nemo-relay as the dispatcher and http://127.0.0.1:47632 as the
bundle endpoint. Choose one of the two launchd jobs below.
User LaunchAgent
Create directories as the target user:
Save the following as
~/Library/LaunchAgents/com.nvidia.nemo-relay.daemon.plist.
Replace /Users/alex with the user’s absolute home path in all three locations.
launchd does not expand ~ or shell variables inside a plist.
Load and inspect the job from that user’s desktop login session:
The job starts again at login. It is not a boot-time service for logged-out users. For multiple simultaneous user daemons, assign separate ports and bundles.
System LaunchDaemon
Use a dedicated hidden service account called _nemo-relay. Check that the name
is unused and select an unused numeric ID. The following example uses 499;
check both listings before using it and replace it if occupied:
As an administrator, create the account and its private home:
Save /Library/LaunchDaemons/com.nvidia.nemo-relay.daemon.plist:
Set ownership and start it:
The service identity lives under /var/lib/nemo-relay/.config/nemo-relay/daemon.
Keep it across upgrades. User workers still load /etc/nemo-relay, and their
identities remain in each user’s config directory.
Verify, Restart, and Remove
Check the listener and complete worker-backed verification:
Restart after a binary update with the command for your job:
Close harness sessions before restarting. For plist changes, unload the job with
bootout, then run its bootstrap command again. Test a planned logout/login
or reboot. Configure your log rotation tool for the two log files; launchd’s
file redirection does not itself bound their size.
To remove a user job:
To remove a system job:
Retain the identity directory and service account for rollback. Follow Operations for upgrades and complete removal. Apple’s launchd guide explains the LaunchAgent and LaunchDaemon file layout.