Go to file
Buddhika Chathuranga 13cfe45490
Update Yaml Configuration support (#596)
* Sync with upstream (#3)

* Add a Dependabot configuration (#558)

* Add a Dependabot configuration

* Update dependabot.yml

* Bump NUnit3TestAdapter from 3.16.0 to 3.16.1 (#561)

Bumps [NUnit3TestAdapter](https://github.com/nunit/nunit3-vs-adapter) from 3.16.0 to 3.16.1.
- [Release notes](https://github.com/nunit/nunit3-vs-adapter/releases)
- [Commits](https://github.com/nunit/nunit3-vs-adapter/compare/V3.16...V3.16.1)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Bump Microsoft.NET.Test.Sdk from 16.4.0 to 16.6.1 (#563)

Bumps [Microsoft.NET.Test.Sdk](https://github.com/microsoft/vstest) from 16.4.0 to 16.6.1.
- [Release notes](https://github.com/microsoft/vstest/releases)
- [Commits](https://github.com/microsoft/vstest/compare/v16.4.0...v16.6.1)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Bump ilmerge from 3.0.29 to 3.0.40 (#559)

* Bump ilmerge from 3.0.29 to 3.0.40

Bumps [ilmerge](https://github.com/dotnet/ILMerge) from 3.0.29 to 3.0.40.
- [Release notes](https://github.com/dotnet/ILMerge/releases)
- [Commits](https://github.com/dotnet/ILMerge/commits)

Signed-off-by: dependabot[bot] <support@github.com>

* Define $(ILMergeVersion)

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Next Turn <45985406+NextTurn@users.noreply.github.com>

* Bump coverlet.collector from 1.2.0 to 1.3.0 (#560)

Bumps [coverlet.collector](https://github.com/coverlet-coverage/coverlet) from 1.2.0 to 1.3.0.
- [Release notes](https://github.com/coverlet-coverage/coverlet/releases)
- [Commits](https://github.com/coverlet-coverage/coverlet/commits)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Bump ilmerge from 3.0.40 to 3.0.41 (#571)

Bumps [ilmerge](https://github.com/dotnet/ILMerge) from 3.0.40 to 3.0.41.
- [Release notes](https://github.com/dotnet/ILMerge/releases)
- [Commits](https://github.com/dotnet/ILMerge/commits)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

Co-authored-by: Oleg Nenashev <o.v.nenashev@gmail.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Next Turn <45985406+NextTurn@users.noreply.github.com>

* Update WinSW Yaml Support

Add sample-allOption.yml
Update timespan values to aprse from strings. Now user can specify timespan values like 5sec.
Implement unimplemented properties in YmlConfiguration

* Update configurations namings

* Move ParseTimeSpan to seperate utility class

* Update Environment Variable Syntax

Now env variables support name: value: syntax

* Add YamlConfigFile.md

Add yaml user documentation
Update YamlSupport Unit test

* Update YamlConfigFile.md

Summerize the yaml documentation and reference the XmlConfigFile.md for more details

* Update YamlDoc

* Update doc/YamlConfigFile.md

Co-authored-by: Next Turn <45985406+NextTurn@users.noreply.github.com>

* Update yaml configurations to expand environment variables

* Update doc/YamlConfigFile.md

Co-authored-by: Next Turn <45985406+NextTurn@users.noreply.github.com>

Co-authored-by: Oleg Nenashev <o.v.nenashev@gmail.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Next Turn <45985406+NextTurn@users.noreply.github.com>
2020-07-29 14:00:39 +02:00
.config Setup code coverage 2020-07-11 19:57:02 +08:00
.github Disable Codedov commit status 2020-07-19 08:16:52 +08:00
doc Update Yaml Configuration support (#596) 2020-07-29 14:00:39 +02:00
eng Setup code coverage 2020-07-11 19:57:02 +08:00
examples Update Yaml Configuration support (#596) 2020-07-29 14:00:39 +02:00
src Update Yaml Configuration support (#596) 2020-07-29 14:00:39 +02:00
.gitignore Remove strong name signing 2020-04-16 12:19:59 +08:00
CHANGELOG.md Update documentation headers 2020-04-01 21:52:12 +08:00
CONTRIBUTING.md Fix typos 2020-05-28 23:26:33 +08:00
Directory.Build.props Standardize coding styles 2020-07-13 09:19:30 +08:00
Directory.Build.targets Remove dead codes 2020-04-13 09:44:26 +08:00
LICENSE.txt Update license for GitHub 2020-03-17 08:24:05 +08:00
MANIFEST.md Clean up documentation 2020-04-01 13:02:47 +08:00
README.md Merge pull request #341 from new-mikha/master 2020-05-10 23:18:45 +02:00
WinSW.nuspec Merge pull request #452 from winsw/nuget-dotnet-461 2020-03-25 11:09:05 +01:00

README.md

Windows Service Wrapper in less restrictive license

Github All Releases NuGet Build Status Gitter 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.

Supported platforms

WinSW offers executables for .NET Framework 2.0, 4.0 and 4.6.1. It can run on Windows platforms which have these versions of .NET Framework installed. For systems without .NET Framework, the project provides native 64-bit and 32-bit executables which are based on .NET Core 3.1.

More executables can be added upon request.

Download

WinSW binaries are available on GitHub Releases and NuGet.

Alternative sources:

Usage

WinSW is being managed by configuration files: Main XML configuration file and EXE configuration 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.
  • stopwait to stop the service and wait until it's actually stopped.
  • 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 indicates the service is not currently installed
      • Started to indicate the service is currently running
      • Stopped to indicate that the service is installed but not currently running.

Most commands require Administrator privileges to execute. Since v2.8, WinSW will prompt for UAC in non-elevated sessions.

Documentation

User documentation:

Developer documentation:

Contributing

Contributions are welcome! No Contributor License Agreement is needed, just submit your pull requests. See the contributing guidelines for more information.

License

WinSW is licensed under the MIT license.