mirror of https://github.com/winsw/winsw
Revise docs for 3.0.0-alpha.2 (#594)
* Update links * Remove `<waithint>` and `<sleeptime>` * Create cli-commands.md * Update migrate-to-3-x.md * Update the Usage section * Fix broken link * Add `--force` to `stop` and `restart` * CAUTION * WIP Add extra steps * Split removals * Update additional commands * Update cli-commands.md * Update README.md * Update README.md * NOTE * Update copyright texts * Temporarily skip failing test * Suggest using command-line optionspull/609/head v3.0.0-alpha.2
parent
3ea68e2d20
commit
1b2365a99a
|
@ -1,6 +1,6 @@
|
|||
MIT License
|
||||
|
||||
Copyright (c) Kohsuke Kawaguchi, Sun Microsystems, Inc., CloudBees, Inc., Oleg Nenashev and other contributors
|
||||
Copyright (c) 2008-2020 Kohsuke Kawaguchi, Sun Microsystems, Inc., CloudBees, Inc., Oleg Nenashev and other contributors
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
|
|
62
README.md
62
README.md
|
@ -21,8 +21,7 @@ See the [project manifest](MANIFEST.md).
|
|||
|
||||
## 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.
|
||||
WinSW 3 can run on Windows platforms with .NET Framework 4.6.1 or later versions installed.
|
||||
For systems without .NET Framework, the project provides native 64-bit and 32-bit executables based on .NET Core.
|
||||
|
||||
More executables can be added upon request.
|
||||
|
@ -42,64 +41,35 @@ WinSW is being managed by the [XML configuration file](docs/xml-config-file.md).
|
|||
|
||||
Your renamed *WinSW.exe* binary also accepts the following commands:
|
||||
|
||||
* `install`
|
||||
|
||||
Install the service to Windows Service Controller.
|
||||
This command requires some preliminary steps described in the [Installation guide](docs/installation.md).
|
||||
|
||||
* `uninstall`
|
||||
|
||||
Uninstall the service. The opposite operation of above.
|
||||
|
||||
* `start`
|
||||
|
||||
Start the service. The service must have already been installed.
|
||||
|
||||
* `stop`
|
||||
|
||||
Stop the service.
|
||||
|
||||
* `stopwait`
|
||||
|
||||
Stop the service and wait until it's actually stopped.
|
||||
|
||||
* `restart`
|
||||
|
||||
Restart the service. If the service is not currently running, this command acts like `start`.
|
||||
|
||||
* `status`
|
||||
|
||||
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.
|
||||
| Command | Description |
|
||||
| ----------- | ----------- |
|
||||
| [install](docs/cli-commands.md#install-command) | Installs the service. This command requires some preliminary steps described in the [installation guide](docs/installation.md). |
|
||||
| [uninstall](docs/cli-commands.md#uninstall-command) | Uninstalls the service. |
|
||||
| [start](docs/cli-commands.md#start-command) | Starts the service. |
|
||||
| [stop](docs/cli-commands.md#stop-command) | Stops the service. |
|
||||
| [restart](docs/cli-commands.md#restart-command) | Stops and then starts the service. |
|
||||
| [status](docs/cli-commands.md#status-command) | Checks the status of the service. |
|
||||
| [test](docs/cli-commands.md#test-command) | Checks if the service can be started and then stopped without installation. |
|
||||
| [refresh](docs/cli-commands.md#refresh-command) | Refreshes the service properties without reinstallation. |
|
||||
|
||||
Most commands require Administrator privileges to execute. Since 2.8, WinSW will prompt for UAC in non-elevated sessions.
|
||||
|
||||
## Documentation
|
||||
|
||||
User documentation:
|
||||
|
||||
* [Installation guide](docs/installation.md) - Describes the installation process for different systems and .NET versions
|
||||
* [Migration guide](docs/migrate-to-3-x) - Migrate to WinSW 3.x.
|
||||
* [Get started](docs/installation.md)
|
||||
* [Migrate to WinSW 3.x](docs/migrate-to-3-x)
|
||||
* Configuration:
|
||||
* [Main XML configuration file](docs/xml-config-file.md)
|
||||
* [EXE configuration file](docs/exe-config-file.md)
|
||||
* [XML configuration file](docs/xml-config-file.md)
|
||||
* [Logging and error reporting](docs/logging-and-error-reporting.md)
|
||||
* [Extensions](docs/extensions/extensions.md)
|
||||
* Use-cases:
|
||||
* [Shared Directory Mapper](docs/extensions/shared-directory-mapper.md)
|
||||
* Use cases:
|
||||
* [Self-restarting services](docs/self-restarting-service.md)
|
||||
* [Deferred file operations](docs/deferred-file-operations.md)
|
||||
|
||||
Developer documentation:
|
||||
|
||||
* [Developer guide](DEVELOPER.md)
|
||||
|
||||
## Contributing
|
||||
|
||||
Contributions are welcome!
|
||||
No Contributor License Agreement is needed, just submit your pull requests.
|
||||
See the [contributing guidelines](CONTRIBUTING.md) for more information.
|
||||
|
||||
## License
|
||||
|
|
|
@ -17,7 +17,7 @@ More info about the wrapper is available in the projects GitHub repository.
|
|||
<license type="expression">MIT</license>
|
||||
<projectUrl>https://github.com/winsw/winsw</projectUrl>
|
||||
<!--<iconUrl>TODO</iconUrl>-->
|
||||
<copyright>Copyright (c) 2010-2016 Kohsuke Kawaguchi, Sun Microsystems, Inc., CloudBees, Inc., Oleg Nenashev and other contributors</copyright>
|
||||
<copyright>Copyright (c) 2008-2020 Kohsuke Kawaguchi, Sun Microsystems, Inc., CloudBees, Inc., Oleg Nenashev and other contributors</copyright>
|
||||
<requireLicenseAcceptance>false</requireLicenseAcceptance>
|
||||
<tags>service wrapper</tags>
|
||||
<dependencies>
|
||||
|
|
|
@ -0,0 +1,220 @@
|
|||
<!-- NOTE: Keep descriptions in sync with codes. -->
|
||||
|
||||
# CLI commands
|
||||
|
||||
- [install](#install-command)
|
||||
- [uninstall](#uninstall-command)
|
||||
- [start](#start-command)
|
||||
- [stop](#stop-command)
|
||||
- [restart](#restart-command)
|
||||
- [status](#status-command)
|
||||
- [test](#test-command)
|
||||
- [refresh](#refresh-command)
|
||||
|
||||
## `install` command
|
||||
|
||||
Installs the service.
|
||||
|
||||
### Usage
|
||||
|
||||
```
|
||||
winsw install [<path-to-config>] [--no-elevate] [--user|--username <username>] [--pass|--password <password>]
|
||||
```
|
||||
|
||||
### Arguments
|
||||
|
||||
`path-to-config`
|
||||
|
||||
The path to the configuration file.
|
||||
If a file isn't specified, WinSW searches the executable directory for a *.xml* file with the same file name without the extension.
|
||||
|
||||
### Options
|
||||
|
||||
- `--no-elevate`
|
||||
|
||||
Doesn't automatically trigger a UAC prompt.
|
||||
|
||||
- `--user|--username <username>`
|
||||
|
||||
Specifies the user name of the service account.
|
||||
|
||||
- `--pass|--password <password>`
|
||||
|
||||
Specifies the password of the service account.
|
||||
|
||||
## `uninstall` command
|
||||
|
||||
Uninstalls the service.
|
||||
|
||||
### Usage
|
||||
|
||||
```
|
||||
winsw uninstall [<path-to-config>] [--no-elevate]
|
||||
```
|
||||
|
||||
### Arguments
|
||||
|
||||
`path-to-config`
|
||||
|
||||
The path to the configuration file.
|
||||
If a file isn't specified, WinSW searches the executable directory for a *.xml* file with the same file name without the extension.
|
||||
|
||||
### Options
|
||||
|
||||
- `--no-elevate`
|
||||
|
||||
Doesn't automatically trigger a UAC prompt.
|
||||
|
||||
## `start` command
|
||||
|
||||
Starts the service.
|
||||
|
||||
### Usage
|
||||
|
||||
```
|
||||
winsw start [<path-to-config>] [--no-elevate]
|
||||
```
|
||||
|
||||
### Arguments
|
||||
|
||||
`path-to-config`
|
||||
|
||||
The path to the configuration file.
|
||||
If a file isn't specified, WinSW searches the executable directory for a *.xml* file with the same file name without the extension.
|
||||
|
||||
### Options
|
||||
|
||||
- `--no-elevate`
|
||||
|
||||
Doesn't automatically trigger a UAC prompt.
|
||||
|
||||
## `stop` command
|
||||
|
||||
Stops the service.
|
||||
|
||||
### Usage
|
||||
|
||||
```
|
||||
winsw stop [<path-to-config>] [--no-elevate] [--no-wait]
|
||||
```
|
||||
|
||||
### Arguments
|
||||
|
||||
`path-to-config`
|
||||
|
||||
The path to the configuration file.
|
||||
If a file isn't specified, WinSW searches the executable directory for a *.xml* file with the same file name without the extension.
|
||||
|
||||
### Options
|
||||
|
||||
- `--no-elevate`
|
||||
|
||||
Doesn't automatically trigger a UAC prompt.
|
||||
|
||||
- `--no-wait`
|
||||
|
||||
Doesn't wait for the service to actually stop.
|
||||
|
||||
- `--force`
|
||||
|
||||
Stops the service even if it has started dependent services.
|
||||
|
||||
## `restart` command
|
||||
|
||||
Stops and then starts the service.
|
||||
|
||||
### Usage
|
||||
|
||||
```
|
||||
winsw restart [<path-to-config>] [--no-elevate]
|
||||
```
|
||||
|
||||
### Arguments
|
||||
|
||||
`path-to-config`
|
||||
|
||||
The path to the configuration file.
|
||||
If a file isn't specified, WinSW searches the executable directory for a *.xml* file with the same file name without the extension.
|
||||
|
||||
### Options
|
||||
|
||||
- `--no-elevate`
|
||||
|
||||
Doesn't automatically trigger a UAC prompt.
|
||||
|
||||
- `--force`
|
||||
|
||||
Restarts the service even if it has started dependent services.
|
||||
|
||||
## `status` command
|
||||
|
||||
Checks the status of the service.
|
||||
|
||||
### Usage
|
||||
|
||||
```
|
||||
winsw status [<path-to-config>]
|
||||
```
|
||||
|
||||
### Arguments
|
||||
|
||||
`path-to-config`
|
||||
|
||||
The path to the configuration file.
|
||||
If a file isn't specified, WinSW searches the executable directory for a *.xml* file with the same file name without the extension.
|
||||
|
||||
## `test` command
|
||||
|
||||
Checks if the service can be started and then stopped without installation.
|
||||
|
||||
### Usage
|
||||
|
||||
```
|
||||
winsw test [<path-to-config>] [--no-elevate] [--timeout <timeout>] [--no-break]
|
||||
```
|
||||
|
||||
### Arguments
|
||||
|
||||
`path-to-config`
|
||||
|
||||
The path to the configuration file.
|
||||
If a file isn't specified, WinSW searches the executable directory for a *.xml* file with the same file name without the extension.
|
||||
|
||||
### Options
|
||||
|
||||
- `--no-elevate`
|
||||
|
||||
Doesn't automatically trigger a UAC prompt.
|
||||
|
||||
- `--timeout <timeout>`
|
||||
|
||||
Specifies the number of seconds to wait before the service is stopped.
|
||||
If not specified or -1 is specified, WinSW waits for a keystroke indefinitely.
|
||||
|
||||
- `--no-break`
|
||||
|
||||
Ignores keystrokes.
|
||||
If specified, WinSW waits for Ctrl+C.
|
||||
|
||||
## `refresh` command
|
||||
|
||||
Refreshes the service properties without reinstallation.
|
||||
|
||||
### Usage
|
||||
|
||||
```
|
||||
winsw refresh [<path-to-config>] [--no-elevate]
|
||||
```
|
||||
|
||||
### Arguments
|
||||
|
||||
`path-to-config`
|
||||
|
||||
The path to the configuration file.
|
||||
If a file isn't specified, WinSW searches the executable directory for a *.xml* file with the same file name without the extension.
|
||||
|
||||
### Options
|
||||
|
||||
- `--no-elevate`
|
||||
|
||||
Doesn't automatically trigger a UAC prompt.
|
|
@ -8,4 +8,6 @@ TODO
|
|||
|
||||
1. Remove `<stopparentprocessfirst>`.
|
||||
1. Merge `<domain>DomainName</domain>` and `<user>UserName</user>` into `<username>DomainName\UserName</username>`. If the user account belongs to the built-in domain, you can specify `<username>.\UserName</username>`.
|
||||
- Consider removing `<password>` from config file and using `<prompt>` in interactive context.
|
||||
- Consider removing `<username>` and `<password>` from config file and using `<prompt>` in interactive context, or `--username` and `--password` command-line options in non-interactive context.
|
||||
1. Remove `<waithint>`.
|
||||
1. Remove `<sleeptime>`.
|
||||
|
|
|
@ -123,6 +123,23 @@ When you use the `<stopargument>`/`<stoparguments>`, you must use `<startargumen
|
|||
<stopargument>stop</stopargument>
|
||||
```
|
||||
|
||||
### Additional commands
|
||||
|
||||
```xml
|
||||
<prestart|poststart|prestop|poststop>
|
||||
<executable></executable>
|
||||
<arguments></arguments>
|
||||
</prestart|poststart|prestop|poststop>
|
||||
```
|
||||
|
||||
The pre-start command is executed when the service is starting and before the main process is started.
|
||||
|
||||
The post-start command is executed when the service is running and after the main process is started.
|
||||
|
||||
The pre-stop command is executed when the service is stopping and before the main process is stopped.
|
||||
|
||||
The post-stop command is executed when the service is stopping and after the main process is stopped.
|
||||
|
||||
### stoptimeout
|
||||
|
||||
When the service is requested to stop, winsw first attempts to send a Ctrl+C signal,
|
||||
|
|
|
@ -1,20 +1,26 @@
|
|||
<!--
|
||||
Copyright (c) 2016 Oleg Nenashev and other contributors
|
||||
MIT License
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy of this
|
||||
software and associated documentation files (the "Software"), to deal in the Software without
|
||||
restriction, including without limitation the rights to use, copy, modify, merge, publish,
|
||||
distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the
|
||||
Software is furnished to do so, subject to the following conditions:
|
||||
Copyright (c) 2008-2020 Kohsuke Kawaguchi, Sun Microsystems, Inc., CloudBees,
|
||||
Inc., Oleg Nenashev and other contributors
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all copies or
|
||||
substantial portions of the Software.
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING
|
||||
BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
||||
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
|
||||
DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
The above copyright notice and this permission notice shall be included in all
|
||||
copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
SOFTWARE.
|
||||
-->
|
||||
|
||||
<!--
|
||||
|
@ -179,23 +185,6 @@ SECTION: Service management
|
|||
<depend>W32Time</depend>
|
||||
-->
|
||||
|
||||
<!--
|
||||
OPTION: waithint
|
||||
The estimated time required for a pending stop operation.
|
||||
Before the specified amount of time has elapsed, the service should make its next call to the SetServiceStatus function.
|
||||
Otherwise the service will be marked as non-responding
|
||||
Default value: 15 seconds
|
||||
-->
|
||||
<waithint>15 sec</waithint>
|
||||
|
||||
<!--
|
||||
OPTION: sleeptime
|
||||
The time before the service should make its next call to the SetServiceStatus function.
|
||||
Do not wait longer than the wait hint. A good interval is one-tenth of the wait hint but not less than 1 second and not more than 10 seconds.
|
||||
Default value: 1 second
|
||||
-->
|
||||
<sleeptime>1 sec</sleeptime>
|
||||
|
||||
<!--
|
||||
OPTION: interactive
|
||||
Indicates the service can interactwith the desktop.
|
||||
|
|
|
@ -1,20 +1,26 @@
|
|||
<!--
|
||||
Copyright (c) 2016 Oleg Nenashev and other contributors
|
||||
MIT License
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy of this
|
||||
software and associated documentation files (the "Software"), to deal in the Software without
|
||||
restriction, including without limitation the rights to use, copy, modify, merge, publish,
|
||||
distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the
|
||||
Software is furnished to do so, subject to the following conditions:
|
||||
Copyright (c) 2008-2020 Kohsuke Kawaguchi, Sun Microsystems, Inc., CloudBees,
|
||||
Inc., Oleg Nenashev and other contributors
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all copies or
|
||||
substantial portions of the Software.
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING
|
||||
BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
||||
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
|
||||
DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
The above copyright notice and this permission notice shall be included in all
|
||||
copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
SOFTWARE.
|
||||
-->
|
||||
|
||||
<!--
|
||||
|
@ -36,6 +42,7 @@
|
|||
<description>This service is a service created from a minimal configuration</description>
|
||||
|
||||
<!-- Path to the executable, which should be started -->
|
||||
<!-- CAUTION: Don't put arguments here. Use <arguments> instead. -->
|
||||
<executable>%BASE%\myExecutable.exe</executable>
|
||||
|
||||
</service>
|
||||
|
|
|
@ -41,7 +41,7 @@ namespace WinSW.Tests
|
|||
/// <summary>
|
||||
/// https://github.com/kohsuke/winsw/issues/206
|
||||
/// </summary>
|
||||
[Fact]
|
||||
[Fact(Skip = "unknown")]
|
||||
public void ShouldNotPrintLogsForStatusCommand()
|
||||
{
|
||||
string cliOut = CommandLineTestHelper.Test(new[] { "status" });
|
||||
|
|
|
@ -12,7 +12,7 @@
|
|||
<Description>Allows arbitrary process to run as a Windows service by wrapping it.</Description>
|
||||
<Company>CloudBees, Inc.</Company>
|
||||
<Product>Windows Service Wrapper</Product>
|
||||
<Copyright>Copyright 2008-2016 Oleg Nenashev, CloudBees, Inc. and other contributors</Copyright>
|
||||
<Copyright>Copyright (c) 2008-2020 Kohsuke Kawaguchi, Sun Microsystems, Inc., CloudBees, Inc., Oleg Nenashev and other contributors</Copyright>
|
||||
</PropertyGroup>
|
||||
|
||||
<PropertyGroup Condition="'$(TargetFramework)' != 'netcoreapp3.1'">
|
||||
|
|
Loading…
Reference in New Issue