winsw: Windows service wrapper in less restrictive license
WinSW is an executable binary, which can be used to wrap and manage a custom process as a Windows service.
Once you download the installation package, you can rename
winsw.exe to any name, e.g.
See the project manifest.
The executables in all sources are strong-named assemblies, which are being singed by randomly generated keys. Do not rely on such strong names for security (as well as on other strong names as it recommended by Microsoft). They provide a unique identity only.
winsw.exe binary also accepts the following commands:
installto install the service to Windows Service Controller. This command requires some preliminary steps described in the Installation Guide.
uninstallto uninstall the service. The opposite operation of above.
startto start the service. The service must have already been installed.
stopto stop the service.
restartto restart the service. If the service is not currently running, this command acts like
statusto check the current status of the service.
- This command prints one line to the console.
NonExistentindicates the service is not currently installed
Startedto indicate the service is currently running
Stoppedto indicate that the service is installed but not currently running.
Supported .NET versions
2.x offers two executables, which declare .NET Frameworks
4.0 as targets.
More executables can be added on-demand.
Please create an issue if you need such executables.
1.x Executable is being built with a .NET Framework
2.0 target, and by defaut it will work only for .NET Framework versions below
On the other hand, the code is known to be compatible with .NET Framework
4.0 and above.
It is possible to declare the support of this framework via the
See the Installation Guide for more details.
- Installation Guide - Describes the installation process for different systems and .NET versions
- Release notes
- Configuration Management:
This is a new baseline of WinSW with several major changes:
- Major documentation rework and update
- New executable package targeting the .NET Framework
4.0. .NET Framework
2.0is still supported.
- Extension engine, which allows extending the wrapper's behavior. And a couple of extensions for it (Shared Directory Mapper, Runaway Process Killer)
- New release hosting: GitHub and NuGet
- Migration of the logging subsystem to Apache log4net
See the full changelog in the release notes.
2.x is fully compatible with the
1.x configuration file format,
hence the upgrade procedure just requires replacement of the executable file.
This is an old baseline of WinSW. Currently it is in the maintenance-only state. New versions with fixes may be released on-demand.
- IDE: Visual Studio Community 2013 (free for open-source projects)
winsw_key.snkshould be available in the project's root in order to build the executable
- You can generate the certificate in "Project Settings/Signing"
- The certificate is in
.gitignorelist. Please do not add it to the repository