1.6 KiB
Contract: the command line in App Store mode
The gRPC contract gains one call, StopDaemon, which stops the daemon through its graceful
shutdown as SIGTERM does. It is additive: the protocol minor version rises to 1.1, and a 1.0 daemon
answers it with UNIMPLEMENTED. The App Store app uses it to stop a daemon an earlier instance of
itself started, which its sandbox forbids signalling (research R-095). FailureReason and the exit
codes are unchanged. What differs is what the
command line says when run from the App Store app's executable, which runs in the same sandbox as
the app and so reaches the same daemon.
service
service stop asks the running daemon to stop through StopDaemon, exiting 0, or 3 when no
daemon answers, since the window's Quit can stop it and the command line must be able to do what
the window does (FR-039c). Every other service subcommand exits with code 4, "unavailable", and
prints:
the App Store build is started by Midi Harbor itself; turn on "Start at login" in its settings
capabilities
service installation no this build does not include it
and in --json output, "available": false with "reason": "this build does not include it",
the existing NotBuilt reason.
config path
Prints the file inside the container:
~/Library/Containers/com.mrgeckosmedia.MidiHarbor/Data/Library/Application Support/midi-harbor/config.yaml
daemon
Unchanged, but when sandboxed it listens on $TMPDIR/daemon.sock, the container's own tmp
(research R-096). --socket still overrides it.