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.service
to register the servicesvcguest.exe --uninstall --config your-program.service
to remove the servicesvcguest.exe --help
for 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.
or PayPal