winsw/README.md

60 lines
3.6 KiB
Markdown
Raw Normal View History

2013-03-01 23:55:22 +00:00
winsw: Windows service wrapper in less restrictive license
=========================
### Why?
<!--TODO: I => something-->
Now, I think the first question that people would ask is, why another, when there's [Java Service Wrapper project](http://wrapper.tanukisoftware.org/doc/english/download.jsp) already available.
The main reason for writing my own was the license — Java Service Wrapper project is in GPL (so that they can sell their commercial version in a different license), and that made it difficult for [Jenkins](http://jenkins-ci.org/) (which is under the MIT license) to use it.
Functionality-wise, there's really not much that's worth noting; the problem of wrapping a process as a Windows service is so well defined that there aren't really any room for substantial innovation.
You basically write a configuration file specifying how you'd like your process to be launched, and we provide programmatic means to install/uninstall/start/stop services.
Another notable difference is that winsw can host any executable, whereas Java Service Wrapper can only host Java apps.
<!--TODO: I-->
Whether you like this or not depends on your taste, so I wouldn't claim mine is better.
It's just different.
As the name implies, this is for Windows only.
Unix systems have their own conventions for daemons, so a good behaving Unix daemon should just be using `launchd/upstart/SMF/etc`, instead of custom service wrapper.
### Download
2013-04-21 01:32:16 +00:00
[Binaries are available here](http://repo.jenkins-ci.org/releases/com/sun/winsw/winsw/)
### Available commands
2013-03-02 00:11:27 +00:00
Your renamed `winsw.exe` accepts the following commands:
* `install` to install the service to Windows Service Controller
* `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
2013-03-02 00:11:27 +00:00
* [Installation Guide](doc/protocols.md) - Describes the installation process for different systems and .NET versions
* Configuration:
* [Main XML Configuration file](doc/xmlConfigFile.md)
* [Configuration File](doc/xmlConfigFile.md)
* [Logging and Error Reporting](doc/loggingAndErrorReporting.md)
* Use-cases:
* [Self-restarting services](doc/selfRestartingService.md)
* [Deferred File Operations](doc/deferredFileOperations.md)
### Project status
* WinSW 1.x - Maintenance only
2016-11-24 00:32:26 +00:00
* [winsw-1.17](https://github.com/kohsuke/winsw/milestones/winsw-1.17) fixes the most of active issues
* [winsw-1.17-beta.2](https://github.com/kohsuke/winsw/releases/tag/1.17-beta.2) is available for the evaluation
* New versions may be released on-demand
* All new fixes will be ported to WinSW-2.x
* WinSW 2.x - Active development, no stable releases available
2016-11-24 00:32:26 +00:00
* [winsw-2.0](https://github.com/kohsuke/winsw/milestones/winsw-2.0) - Current development branch
* API stability is not guaranteed till the first release, the project structure is in flux
### Build Environment
2016-11-24 00:32:26 +00:00
* IDE: [Visual Studio Community 2013](http://www.visualstudio.com/en-us/news/vs2013-community-vs.aspx) (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 <code>.gitignore</code> list. Please do not add it to the repository