Register any executable as a Windows service with a (partially) systemd-compatible unit config. What SvcGuest can achieve is a lot like NSSM (the Non-Sucking Service Manager) but SvcGuest is designed to be shipped along with a larger piece of software rather than be used by end user directly.
Binaries are available for download in the releases page for your convenience.
- .NET Framework 4.6.2
If you wrote a piece of software and doesn't want to adapt to the Windows Service interfaces yourself, you can distribute a binary release of SvcGuest.exe and your program.service config file (example) with your software, and run svcguest.exe --install --config program.service (remember to elevate!) during your software installation.
MPL 2.0 License allows distributing SvcGuest.exe with your software for free with some limitations. Ask your lawyer for advice if in doubt.
Assume you have a program that you want to run at startup (before user login) but don't want to use legacy dirty methods like Task Scheduler. You need to put a SvcGuest.exe, a your-program.service config file (an example is available) into the same directory as the program (recommended, other directories are OK too).
- Right click on
svcguest.exe-> "Run as administrator" to install all units interactively svcguest.exe --install --config your-program.serviceto register the servicesvcguest.exe --uninstall --config your-program.serviceto remove the servicesvcguest.exe --helpfor a complete help
Features supported on the master branch (for the releases, see the .service file provided):
- Unit
- Description
- Documentation
- Service
- Type
- simple
- forking
- oneshot
- idle
- User
- RemainAfterExit
- ExecStartPre
- ExecStart
- ExecStartPost
- ExecStop
- ExecStopPost
- Environment
- EnvironmentFile
- PassEnvironment
- UnsetEnvironment
- WorkingDirectory
- CPUAffinity
- Type
- Install
- WantedBy
- RequiredBy
Master branch is unstable; please use a specific release for production use.
It is recommended to upgrade to the latest revision (i.e. if you are at 1.0.2.4, then you should upgrade to 1.0.2.5 or later version of 1.0.2.x); but if you have no issue running one of the releases and don't need any new function, then you don't need to upgrade to a later minor version (e.g. 1.0.2.x to 1.0.3.x).
If this project is helpful to you, please consider buying me a coffee.
