> a real API for services rather than just relying on process spawning and scripting around that

What's the difference? Aren't services always just spawned processes?

On Windows, services use this API: https://learn.microsoft.com/en-us/windows/win32/services/ser...

Services are executables, but they have dedicated entrypoints/"signals" for interaction with the service manager. That means you can't point a service at a batch file or powershell script, because those applications don't have the symbols to respond to the signalling from Windows.

I'm sure there is some perfectly valid reason for that in Windows-land but yet I prefer the launchd/systemd approach.