The Core Technologies Blog

Professional Software for Windows Services / 24×7 Operation


Q&A: What’s Your Software Upgrade Policy? Can I Upgrade for Free?

What's Your Software Upgrade Policy?
Quotes  I see that you have a new version of your software available or download. Can I upgrade for free? If not, how much does it cost?

— Irene

Hi Irene, thanks for reaching out.

Not all upgrades are free. And the answers to your questions depend on your specific situation. Let’s dig into the details.


Every license includes a free upgrade to the next version

When you buy our software, your license is valid for any release with the same major version number or the next. That is, your purchase includes a free upgrade to the next version.

For example, let’s say you bought AlwaysUp version 16. In that case, you can use:

  • Any version 16, and
  • Any version 17, because of the free upgrade to the next major version.

However, your license will not work with version 18 and later. You’ll need to purchase a discounted upgrade for that.

How to find the version number purchased

Your order page shows the version number you bought:

Find the version number on your order page

How to find the latest version number available

Visit our website to find the latest and greatest.

For example, it’s on the AlwaysUp download page:

Find the current version of AlwaysUp

And you can find the same on the Service Protector download page.

How to find the version number installed

To find the version in use, open the software and choose Help > About from the menu. The window that comes up shows the information.

Here’s what that looks like in Service Protector:

Service Protector version number

The bottom line

Once you know the version you bought and the version you want to use, you can apply the upgrade policy to figure out if the upgrade is free or not.


Save 30% when you choose to buy an upgrade

If you’re ready to upgrade, be sure to take advantage of generous discount pricing.

An upgrade license for AlwaysUp costs $34.99 and an upgrade for Service Protector costs $69.99. Both are 30% off regular prices.

And just like a full license, an upgrade is good for the next version too. For example, if you pay to upgrade to AlwaysUp version 17 today, your upgrade to the future version 18 will be complimentary.


Frequently asked questions about upgrades

Since you inquired about upgrades, let’s review what other customers have asked our support team. Hopefully this information will help you decide if an upgrade is right for you or not.

  1. What happens if I don’t upgrade? Will the software stop working?

    The short answer is that nothing will happen. The software you bought will continue to function normally.

    That’s because your license is perpetual. It has no expiration date and you can use it for as long as you like.

    To be crystal clear, upgrading isn’t mandatory. That decision is entirely up to you.

  2. Why should I upgrade?

    We’re constantly improving our software. Every few months we add time-saving features, fix bugs, apply security patches and react to the unending sequence of updates from Microsoft. Indeed, you can see the steady progress in the release notes (AlwaysUp, Service Protector) and blog articles announcing new releases.

    If you rely on our products in a commercial environment — where stability, compatibility, and security are paramount — we strongly recommend keeping your software up to date. It’s the best way to avoid problems and minimize surprises as Windows evolves.

  3. Were do I buy upgrades?

    Please purchase at our website:

    The automated systems will get you set up with the latest version minutes after you complete payment.

  4. Why do you charge for upgrades?

    We think it’s the fairest way to operate. Here’s our reasoning.

    First, realize that our software is a one-time purchase. There are no ongoing subscription fees and the version you buy is yours to keep.

    Second, our team keeps improving the software even after you’ve bought it. Each subsequent release brings new features and adds to the value you receive from the software.

    But how should our small company fund that continuous development?

    We could:

    1. include the cost of lifetime upgrades in every license, or
    2. switch to a subscription model, where customers pay a fee each month, or
    3. charge only the customers who want to upgrade

    We ruled out mandatory lifetime upgrades because that raises the cost for everyone — including those who never intend to update. And a subscription model is a poor fit for our modestly-priced utilities. That leaves charging for upgrades as the only viable solution.

    But it’s a excellent one! Charging for upgrades is the most natural way for happy customers to reward us when we deliver added value. Furthermore, the funds from upgrades incentivize us to continue supporting the software and keep making it even better for everyone. It’s a win-win.

  5. When buying an upgrade, will I need to enter any information from my previous orders?

    No, you won’t have to enter anything from your previous purchase.

    Just pay for the upgrade and our systems will verify eligibility on the back-end.

  6. How often are major releases?

    We aim to produce a major software update every 12-18 months. That’s enough time for us to build and deliver significant additional value to customers.

    The upshot is that if you buy a license today, you’ll have at least a year (and up to 3 years) of free upgrades included in your purchase.

Posted in Company | Tagged , , , | Leave a comment

AlwaysUp 17.5: Next-Gen Health Checks & Command Line Upgrades

AlwaysUp 17.5: New and Improved Health Checks, Command Line Enhancements

AlwaysUp version 17.5 — which installs any program as a robust Windows Service — is available for download. Here are the main highlights of this end-of-summer release.


Automatically restart your app if a supporting Windows Service isn’t running

Does your AlwaysUp application depend on a Windows Service? And when that service stops, will your application fail?

If that describes your situation, you should deploy the new “supporting service” sanity check. After you set it up, AlwaysUp will confirm that the service is running every few seconds.

Whenever AlwaysUp discovers that the service isn’t running, it will reset your application — and recycle the important service too, at your direction.

To deploy the new sanity check:

  1. Choose Check that a Windows Service is running from the list of health checks:

    Check that a Windows Service is running
  2. On the next screen, choose the Windows Service AlwaysUp should monitor:

    Choose the Windows Service AlwaysUp should monitor


Catch HTTP error messages with the Web Server sanity check

Web servers can fail in unexpected ways.

And sometimes instead of crashing outright, they limp along returning valid responses (HTTP code 2XX) while spewing errors on the pages served.

Our team has retrofitted the web server sanity check to catch those faulty responses. Instead of relying on the HTTP code alone, AlwaysUp can now scan for a specific error message returned on the page. Just enter that text when configuring the sanity check:

AlwaysUp catches web server error messages

With that new capability in place, AlwaysUp will thoroughly scan the body of each web server response and promptly restart your application if the error text is found.


Sanity checks inspect your application’s entire process tree

In the real world, Windows applications often deploy multiple processes to do their work. Many times there’s a parent process (the one that was started) and one or more child processes launched to perform specific tasks.

That arrangement posed a problem for some of AlwaysUp’s most popular sanity checks. They would only check the parent process and not the child processes, and sometimes that led to false positives.

Our solution is to extend those health checks to interrogate the entire process tree — the top-level process and all its sub-processes. That’s a new option is available to you when configuring some sanity checks.

For instance, let’s look at the network connections sanity check. A new setting is available on the main configuration window. Once you activate it, AlwaysUp will search the entire process tree for connections:

AlwaysUp scans the entire process tree for network connections

A similar option is available in the sanity check that restarts your application whenever it uses too many operating system handles. It’s new as well.


Control AlwaysUp from a command prompt

With Version 17.5, you can do much more with “AlwaysUp.exe” from an elevated command prompt.

Previous releases supported basic operations (start, stop, etc.) but XML import, XML export, detach, and help are new. Let’s explore those additions.

XML import & export

To create a new AlwaysUp application, run:

AlwaysUp.exe -import <xml-file-name>

To save an application to an XML file, run:

AlwaysUp.exe -export <xml-file-name> <application-name>

For example, let’s say you have an AlwaysUp called MyServer. This command will export it to “C:\AlwaysUp Apps\myserver.xml”:

AlwaysUp.exe -export MyServer "C:\AlwaysUp Apps\myserver.xml"

As always, be sure to enclose the XML file name in quotes if it contains a space.

The XML must conform to the AlwaysUp CLT XSD.

Detach

It’s possible to stop AlwaysUp but leave your application running. That detach feature — which is available from the “Application” menu — can be useful when you need to perform application maintenance and don’t want AlwaysUp to get in the way.

To detach an application, run:

AlwaysUp.exe -detach <application-name>

Help/usage

To see the full command line capabilities, run:

AlwaysUp.exe -help

A window with the details will pop up:

AlwaysUp command line help

Even though these enhancements don’t rival the power and flexibility of AlwaysUp Command Line Tools (CLT), we expect customers will put them to good use!


Heightened logging & accountability

Building on the advanced logging capabilities introduced in 17.0, AlwaysUp reports additional details to the Windows Event Logs.

Most notably, instead of writing general “updated” records whenever someone edits an application, AlwaysUp mentions what was changed. To show you what we mean, here’s what the record looks like when user Mike Jones updates an application’s executable path:

Mike Jones updated the AlwaysUp application's executable path

We’re confident these security-centric additions will help busy administrators as they try to figure out who did what.


Other improvements and fixes

  • On the Monitor tab, AlwaysUp now shows the details of the sanity check when you hover over (or click) the green check mark:

    Web server sanity check summary
  • For completeness, AlwaysUp writes Event Log records whenever services are controlled from the command line. You’ll see entries like “Start requested (command line)” or “Stop requested (command line)” whenever those operations are invoked.

  • Our developers updated the InfluxDB Application Advisor to search for the correct executable, “influxdb3.exe”.

As usual, please review the release notes for the full list of features, fixes and improvements included in AlwaysUp version 17.5.


Version 17.5 is 100% clean & safe

We’re pleased to report that AlwaysUp 17.5 is certified 100% clean by VirusTotal, an industry-leading malware detection site owned by Google.

As you can see from the full report, none of VirusTotal’s 91 virus detection engines found any issues at all:

VirusTotal summary for AlwaysUp version 17.5


Upgrading to AlwaysUp 17.5

If you bought AlwaysUp version 16 (on or after February 7 2025), you can upgrade to version 17.5 for free. Simply download and install “over the top” to preserve your existing applications and all settings. Your registration code will continue to work as well.

If you bought AlwaysUp version 15 or earlier (before February 7 2025), you’ll have to purchase a discounted upgrade to use version 17. Please buy upgrades here — you’ll save 30% off the regular price.

Please see the complete upgrade policy for additional details.

Thanks for reading!

Posted in AlwaysUp | Tagged , , , , , , , , , , , | Leave a comment

Your Windows Service Says “Running,” But Is It Actually Working?

Your Windows Service Says Running, But Is It Actually Working?

A green “Running” status in Services.msc can be very reassuring. Indeed, it means that your service’s executable is still active.

But it’s NOT proof that your application is healthy — serving requests, processing jobs or accepting connections.

The truth is that even though a Windows Service is technically running, it can still be utterly useless. A lifeless zombie, dead on its feet.


The most frustrating kind of outage

Application crashes are never welcome.

But in the spectrum of failures, a clear, unambiguous crash (where the process dies) is the easiest to deal with. That’s because it’s relatively straightforward to determine when a process exits and react accordingly.

It’s far more difficult to catch failures when the service is still running but not doing its work. Conventional monitoring tools tell us that everything is fine, yet the service is actually down because customers cannot complete the tasks they need to perform.

The result? Prolonged, frustrating outages.


Common examples of “running but not working”

If we define failure as “not working”, there are a variety of ways a running Windows Service can fail.

For example, users will complain loudly when:

  • A network service accepts a connection but never returns a response.

  • A queue processor is alive but no longer consuming messages.

  • A database service is running but cannot accept useful work.

  • A web server accepts HTTPS requests but always responds with a 5XX error.

  • An integration service has lost access to a remote dependency.

  • A backup service stops uploading files to the cloud.

You can probably think of other scenarios as well.


Why Windows cannot always see the problem

Windows can easily determine whether your service has started, stopped or reported a status. It can even detect when your service process crashes — and quickly restart it.

But that’s the limit of what the operating system can do. It cannot automatically know whether every application-specific business operation is succeeding.

Keep in mind that the Windows Services system is built to manage a wide range of applications. The recovery functionality is very generic because it must support anything a programmer can dream up.

And because of that general-purpose approach, Windows doesn’t even attempt to understand how your program works. The result is that Windows never checks if your service is actually doing its job.


Service Protector checks the work, not just the process

Fortunately, Service Protector closes the gaps.

Instead of just checking if the process is alive or not, Service Protector digs in and confirms that your application is actually doing its job.

For example, Service Protector can check:

  • Is your service using too much memory or CPU?

  • Is a drive letter mapped and accessible?

  • Was a special file updated recently?

  • Is a network server accepting TCP/IP connections?

  • Is a web server responding properly?

  • Is an important/helper program or service running?

  • Does your service have one or more network connections open?

  • Was an adverse Windows event reported while your service was running?

  • Does your service have too many operating system handles open?

And if none of those work for you, extend Service Protector with a custom health check — a probe that works for your unique situation.


Example #1: Automatically restart your service if it’s using too much memory

If your service is a memory hog, have no fear. Service Protector will calculate the executable’s memory usage every few seconds and promptly restart it if it exceeds a specific threshold.

Just enter the threshold and you’ll be good to go:

Set the memory threshold for your service

Example #2: Automatically restart your service if it has no open network connections

Are you running a Windows Service that must always be listening for connections?

If so, Service Protector will periodically scan your server and recycle it if it’s not accepting connections.

Install a “network connections” sanity check to do the trick. Start by entering what kind of network connections are expected:

Check that your service always has a network connection

Afterwards, enter how often Service Protector should check your server and you’ll be all set.


Try Service Protector completely free for a month — no strings attached

Download the free 30-day trial and put Service Protector to the test yourself, in your unique environment. Setup takes a couple of minutes, and you’ll know soon if it’s what you need.

For Windows 11/10 & Windows Server 2025/2022/2019/2016
  • 100% compatible with all current versions of Windows
  • No signup necessary
  • No credit card required
  • No advertising of any kind
  • Easy uninstall if it doesn’t solve your problem
Posted in Service Protector | Tagged , , , , , , | Leave a comment

AlwaysUp Feature Spotlight: Set Your Application’s Priority

AlwaysUp Feature Spotlight: Set Your Application's CPU Priority

What’s the “set priority” feature? Why would I use it?

Is AlwaysUp running an important, CPU-hungry application for you? Does that application deserve more resources than other programs on the machine? If so, you’re in luck because AlwaysUp can speed up your mission-critical app by giving it more CPU cycles.

But before we dig into how to do that in AlwaysUp, let’s explore the Windows technology behind the feature.

How Windows runs applications

Windows is a multi-tasking operating system, where your machine’s CPUs are shared between all the programs running on your computer. Behind the scenes, each program gets a periodic slice of the CPUs as Windows cycles through them all.

By default, all programs are treated the same and the CPUs are allocated equally between them. For example, if there are a 100 programs running, each is offered 1/100th of the CPUs over the course of a minute.

But Windows understands that not all programs are equivalent. Some deserve more of your computer’s precious CPU cycles, while others need less.

To support those differing needs, Windows offers a flexible CPU scheduling priority system. With that, you’re able to tell Windows if your application needs more CPU, or less.

AlwaysUp taps into the Windows scheduling system, making it possible for you to tailor your application’s CPU use as it runs as a Windows Service.

Why set my application’s priority?

In general, you do it to make your AlwaysUp application run faster.

And why not give your program a boost — especially if it’s the most important application running on your computer?

We’ll show you how adjust priority in the next section.


How do I set my application’s priority in AlwaysUp?

You can set your application’s CPU priority on the General tab:

Set your application's priority in AlwaysUp

Select the best value for your application from the dropdown menu:

The application priority values in AlwaysUp

Here’s what each option will do:

cpu Idle (only runs when the computer is idle)

Your application will only be assigned a CPU when no other program needs it. That is, only when the computer is idle.

This setting is great for background tasks that should always defer to programs.

cpu Below Normal

Your application needs regular CPU cycles but it’s OK if other programs take most of the CPU. “Below Normal” is appropriate for low-priority tasks that are happy to wait while normal activities take precedence.

cpu Normal

“Normal” is the default priority and most applications run at this level. Windows will allocate a fair and balanced amount of CPU to ensure that your application makes steady progress.

cpu Above Normal

Windows will assign your application a bit more CPU than normal — but not so much that it “starves” other applications.

This is a safe choice if you want to provide a moderate boost for your application.

cpu High

When you select “High”, Windows will move your application to the front of the line and give it the CPU whenever it can use it. That will certainly boost your application but it may prevent other, lower priority applications from running.

cpu Real-time (highest – use with caution)

Set your application’s priority to “Real-time” in the rarest of circumstances. That’s because it’s the highest level and Windows will schedule you application ahead of vital system tasks, and that can lead to unwelcome behavior.

Keep in mind that while AlwaysUp provides the real-time option for completeness, we’ve never come across a real-world situation where it was the answer. Caveat emptor.


What are your best tips for setting CPU priority?

Tip #1: “Above normal” is enough for most applications

If you’re running an important application that should take priority over others, we recommend boosting priority to “Above normal”.

Doing so will ensure that your app takes precedence over all regular applications — but not at the expense of critical operating system functions.

You probably don’t need to go all the way to “High” priority, and almost certainly never to “Real-time”.

Tip #2: Consider limiting your application to specific CPUs too

In addition to setting CPU priority, AlwaysUp can also run your application on specific CPUs. You may find that level of control helpful when you’re managing many applications and need to constrain how CPUs are assigned.

You can find the CPU assignment controls on the Extras tab:

Set which CPUs your application should use

Just pick one or more CPUs and you’ll be good to go.


Posted in AlwaysUp | Tagged , , , , | Leave a comment

AlwaysUp Feature Spotlight: Stop Trying to Restart a Failing Application

Stop Trying to Restart your Application

Why should AlwaysUp stop trying to restart my application?

Let’s be clear: AlwaysUp’s primary job is to make sure that your program is always running. At its core, the software will do everything in its power to prevent prolonged downtime, which can be costly to you and your team.

But even so, there are times when AlwaysUp isn’t able to fulfill its noble mission. And in those rare scenarios, it may be best to fail gracefully instead of continuing to fight an unwinnable battle.

Let’s explore the issue through an example.

Example: A critical network drive vanishes

In this scenario, you’ve already installed your program as a Windows Service with AlwaysUp. Even though it’s running on the PC in your cubicle, the executable sits on a network drive hosted by the file server in your office.

Overnight, a power surge knocks out the file server. It’s completely dead. Your IT team will have to restore it from a backup later that day.

Luckily your PC is still working. When it roars back to life, AlwaysUp immediately tries to start your application. But since the executable sits on the recently departed file server, AlwaysUp fails to start it. The error looks like this:

AlwaysUp fails to start a network application

Undaunted, AlwaysUp will try again — and fail again. In fact, it will keep trying every second, thousands of times, filling up your event logs and not getting anything done. It’s the very definition of beating a dead horse, until you arrive at your desk and manually stop AlwaysUp.

To avoid that futile cycle, you should configure AlwaysUp to give up after a while. We’ll cover that prudent safety net in the next section.


How do I tell AlwaysUp when to give up restarting?

The mechanism is simple. Instruct AlwaysUp to stop trying to restart your application and exit if it fails several times over a given period.

The controls are on the Restart tab:

Set when to stop restarting a failing application

By default, AlwaysUp gives up if it fails 5 times in 1 minute. That’s proven to be a good safety net for many customers but please feel free to tune the values for your specific application.

Understand that once it hits the threshold you’ve defined, AlwaysUp will shut down. The Windows Service created to manage your application will stop. You’ll see an error like this in the activity report:

AlwaysUp logs an error when it gives up restarting

After you fix the underlying problem, you’ll have to manually restart AlwaysUp (or reboot your computer) to run your application as a service again.


What are your best tips for using the stop-restarting feature?

Tip #1: Set up email alerts to tell you when AlwaysUp gives up

If you’d like to be notified when AlwaysUp stops trying to restart your application and shuts down, you should configure email alerts.

The final email (after the stop-restarting threshold has been crossed) will clearly communicate what’s going on:

Email telling you that AlwaysUp has stopped

That way, you’ll know that you need to jump in to get your application going again.

Tip #2: If AlwaysUp gives up, troubleshoot your application

If your application repeatedly fails to start, it’s likely a serious problem. It’s certainly not one that AlwaysUp will be able to solve by itself.

You should jump in to troubleshoot. Here are a few things to try:

  • Start your application on your desktop (without AlwaysUp involved) and see if it reports any warnings or errors.

  • Try the same command line that AlwaysUp uses to launch your application. To do so, combine both the Application and Arguments fields, making sure to enclose the path in quotes if it contains a space:

    Compose your application command line
  • Review any log files that your application writes.

  • Watch out for sneaky automatic updates that break things. For example, if an update relocates your application’s main executable file, you’ll need to update the path in AlwaysUp.

Posted in AlwaysUp | Tagged , , , | Leave a comment