Skip to content

Upgrade WinSW to 2.0.1 #268

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 1 commit into
base: master
Choose a base branch
from
Open

Upgrade WinSW to 2.0.1 #268

wants to merge 1 commit into from

Conversation

nxtn
Copy link

@nxtn nxtn commented Aug 6, 2020

WinSW 2 carries a logging framework so the binary is a bit larger.

Also removes .NET 2 support. Who is using .NET 2 these days?

Fixes #47


Bug fixes

  • Prevent CPU overutilization when waiting for the process to exit.
  • Properly retrieve waithint, sleeptime, resetfailure, and stoptimeout options from XML configs with metadata before settings.
  • Print warnings in the uninstall command when the service cannot be uninstalled immediately.
  • Prevent failure when stoparguments are defined without stopexecutable in the XML file.
  • Prevent failure during process termination if child processes cannot be retrieved due to the pending system shutdown.
  • Security: Do not dump WinSW environment variables to the Event log.
  • Do not propagate exceptions from Process.Kill() if the process actually exits.

Compatibility notes

  • WinSW v2 is fully compatible with WinSW v1 in terms of the command-line interface and configuration files.

@coreybutler
Copy link
Owner

I'll consider this, depending on how much time I get. I've been working on an alternative to winsw, so this may not be necessary.

@nxtn
Copy link
Author

nxtn commented Aug 6, 2020

We're now building WinSW 3, and it's surprising to see this project is still using WinSW 1. A large number of issues in this repo have been resolved in the upstream.

I've been working on an alternative to winsw

Why reinvent the wheel? Is it written in Golang?

@coreybutler
Copy link
Owner

Yes, alternative is in Go. It's not recreating the wheel for me, because I'm building it for another effort.

Again, not opposed to merging this, I just need to test it/confirm and make sure I can continue to support it.

@nxtn
Copy link
Author

nxtn commented Aug 11, 2020

Sounds good. I'm also considering rewriting WinSW in a different language, but I don't regard Go as a competitive choice. I would prefer a native language like Rust this time.

@udany
Copy link

udany commented Dec 7, 2020

Would this also address issue #53 and allow node-windows to set a StartupType?

@nxtn
Copy link
Author

nxtn commented Dec 8, 2020

Would this also address issue #53 and allow node-windows to set a StartupType?

Yeah. There may be more ancient issues fixed

@terryaney
Copy link

WinSW 2 carries a logging framework so the binary is a bit larger.

Also removes .NET 2 support. Who is using .NET 2 these days?

Fixes #47

Bug fixes

  • Prevent CPU overutilization when waiting for the process to exit.
  • Properly retrieve waithint, sleeptime, resetfailure, and stoptimeout options from XML configs with metadata before settings.
  • Print warnings in the uninstall command when the service cannot be uninstalled immediately.
  • Prevent failure when stoparguments are defined without stopexecutable in the XML file.
  • Prevent failure during process termination if child processes cannot be retrieved due to the pending system shutdown.
  • Security: Do not dump WinSW environment variables to the Event log.
  • Do not propagate exceptions from Process.Kill() if the process actually exits.

Compatibility notes

  • WinSW v2 is fully compatible with WinSW v1 in terms of the command-line interface and configuration files.

Curious. I looked at the commit. All the 'Bug Fixes' listed here. Those are fixes in WinSW I assume? Since commit simply updated the executable.

@gcoon151
Copy link

gcoon151 commented Jul 2, 2025

@coreybutler did you move to the go solution or solve the .net 4.x problem another way?

@coreybutler
Copy link
Owner

@gcoon151 I've not moved on this at all. This library has an extremely outdated code base with outdated dependencies. It still works, but it really needs a fresh sweep. I intend to create something new, but I'm not entirely sure what form that will take.

I'm increasingly of the mindset that service management should be a standalone tool, not an embeddable module. There's a lot of overlap with NVM for Windows, or more specifically, the work we're doing on the successor project (Runtime/Author). That's the direction I'm exploring at the moment.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Install Service not working on Windows 8.1 and .NET 4.5
5 participants