Segs / Segs.dev

For segs.io config, scripts, themes, and issues
BSD 3-Clause "New" or "Revised" License
2 stars 0 forks source link

Make SEGS a system service on the Windows test server #23

Closed ldilley closed 5 years ago

ldilley commented 5 years ago

As it stands, regular users under Windows are not able to see or kill processes started by other users. This presents a problem considering that the segs_server.exe process started by one member of the team cannot be stopped by another member.

Something similar to sudo and the setup on the Linux test system would be ideal. As a result, the idea to use runas or log into a shared account to work around the issue came to mind. runas still only launches the process in the owner's space making it visible to the owner only. Using a shared account would also have disadvantages (losing per-user configuration and the lack of accountability.)

Furthermore, the Windows service facility is not natively capable of running segs_server.exe or even a .bat file which starts the executable. After some research, I discovered NSSM (https://nssm.cc/). I've created a service account and configured segs_server.exe to start via NSSM using the new account. NSSM is, in turn, started as a Windows service. Lastly, I've granted all SEGS team members with access the ability to pause/start/stop the service from Task Manager or from services.msc.

I'll follow up with @miles200 and/or @erpmario to see if this configuration will meet our needs.

ldilley commented 5 years ago

Two services have been added using NSSM -- one for release builds and one for debug builds. @miles200 has successfully tested stopping/starting these new services as a non-privileged user. The debug service is configured to automatically start on boot while the release build has been disabled for now.