A wrapper executable that can run any executable as a Windows service, in a permissive license.
Windows 服务封装器.

Oleg Nenashev 38ccac88ca Add a simple documentation stub for the EXE Config File 9 years ago
doc 38ccac88ca Add a simple documentation stub for the EXE Config File 9 years ago
packages 3ae6ffaa47 Add "version" and "help", handle unsupported commands (PR #81) 10 years ago
src 80295db8d7 Merge branch 'master' into winsw-2.0 9 years ago
.gitignore 53ba5810a6 Strong name signing of merged assemblies. 10 years ago
CHANGELOG.md b16368b8aa Docs: Add changelog 9 years ago
LICENSE.txt a28b98f3b8 Adding my current and former employers. 12 years ago
MANIFEST.md 33efbdd7dd Docs: Decouple the project manifest to a standalone page 9 years ago
README.md 38ccac88ca Add a simple documentation stub for the EXE Config File 9 years ago
sign.sh 68494aa25f Visual Studio isn't signing bits for me. 9 years ago
winsw.csproj 68494aa25f Visual Studio isn't signing bits for me. 9 years ago

README.md

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. myService.exe.

Why?

See the project manifest.

Download

Right now the project uses Jenkins Maven repository as a main storage of release files. Binaries are available here.

Some releases (e.g. alpha- and beta-versions) can be also downloaded from the project's GitHub page. This source of releases is not an official one.

Usage

WinSW is being managed by configuration files: Main XML Configuration file and EXE Config file.

Your renamed winsw.exe binary also accepts the following commands:

  • install to install the service to Windows Service Controller. This command requires some preliminary steps described in the Installation Guide.
  • uninstall to uninstall the service. The opposite operation of above.
  • start to start the service. The service must have already been installed.
  • stop to stop the service.
  • restart to restart the service. If the service is not currently running, this command acts like start.
  • status to check the current status of the service. This command prints one line to the console. NonExistent to indicate the service is not currently installed, Started to indicate the service is currently running, and Stopped to indicate that the service is installed but not currently running.

Documentation

Release lines

WinSW 2.x

This is a new release line under active development. API stability is not guaranteed till the first release, the project structure is in flux.

Major changes since 1.x:

  • Rework of the project structure
  • Better logging
  • Internal plugin engine, which allows extending the WinSW behavior

WinSW 1.x

This is an old baseline of WinSW. Currently it is in the maintenance-only state. New versions with fixes may be released on-demand.

Build Environment

  • IDE: Visual Studio Community 2013 (free for open-source projects)
  • winsw_cert.pfx should be available in the project's root
    • You can generate the certificate in "Project Settings/Signing"
    • The certificate is in .gitignore list. Please do not add it to the repository