The (non-)selected Stack Overflow response recommends using NSSM (The "Non Sucking Service Manager"), and I do to - it can run any executable as a service, collect and rotate its stdout/stderr, and makes it easy to register, inspect etc.
I'm not sure how it passes e.g. suspend requests, but for 99% of use cases, it seems to make running and using services much much simpler.
