Skip to content

Install any executable as a Windows service. (systemd compatible config!)

License

Notifications You must be signed in to change notification settings

Jamesits/SvcGuest

Repository files navigation

SvcGuest

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.

Build status

Binaries are available for download in the releases page for your convenience.

Requirements

  • .NET Framework 4.6.2

Usage

Software Distributor

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.

End User

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 service
  • svcguest.exe --uninstall --config your-program.service to remove the service
  • svcguest.exe --help for a complete help

Features

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
  • Install
    • WantedBy
    • RequiredBy

Notes

Versioning

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).

Donation

If this project is helpful to you, please consider buying me a coffee.

Buy Me A Coffee or PayPal

About

Install any executable as a Windows service. (systemd compatible config!)

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages