The Core Technologies Blog

Professional Software for Windows Services / 24×7 Operation


AlwaysUp 16 Handles Common Application Failures — So You Don’t Have To

AlwaysUp 16 Handles Common Failures, So You Don't Have To

As AlwaysUp enters its 21st year of babysitting important applications — and reducing interruptions during dinner time — we’re pleased to release version 16 to all customers.

Version 16 is a significant step forward. Most notably, the powerful sanity check feature has been overhauled to prioritize ease of use while retaining flexibility. And beyond that, a handful of fixes and improvements make life easier for anyone looking to run an application as a Windows Service. Dig into the details below.


AlwaysUp continuously monitors your application and quickly restarts it if it stops working

With regards to failure detection, AlwaysUp has always gone beyond the basics. Most notably, the powerful sanity check feature — which has been included since version 3 — allows you plug in your own executable and check for any kind of failure you like, not just crashes and hangs.

But plugging in a sanity check could be difficult. The truth is that not everyone has the time or expertise to write code or compose a batch file. And the somewhat predictable consequence, is that the sanity check feature was limited to the technically savvy.

AlwaysUp 16 changes all that. Now, anyone can introduce a sophisticated sanity check — in seconds.

For example, let’s say that the application you’ve installed as a Windows Service with AlwaysUp runs a HTTP/S web server. That’s a very common practice these days, as enterprise programs like Prometheus and ngrok illustrate.

You’ll probably want to make sure that the web server component doesn’t fail because if it does, you’d have to jump onto the server and restart the software. Here’s how you would set up a sanity check to guard against that:

  1. Edit your application in AlwaysUp.

  2. Check the Whenever it fails a periodic sanity check box and click the Set button on the right:

  3. In the Add Sanity Check window, choose Check that a web server is responding properly from the list and click Next:

    Choose the web server sanity check
  4. On this page, enter the URL of the page that AlwaysUp should check. That address will probably be rooted at localhost (or 127.0.0.1) since you’re checking a local application:

    Enter the URL to monitor
  5. After clicking Next, specify how often AlwaysUp should ping your web server:

    Specify the sanity check frequency
  6. Finally, confirm your settings and click the Add button to save your new sanity check:

    Confirm your sanity check

And with that sanity check in place, AlwaysUp will visit the URL every 5 minutes. If the URL doesn’t load — or returns an invalid response — AlwaysUp will promptly restart your application.

Check out the AlwaysUp sanity checks page for the full complement of built-in sanity checks available today.


No more errors when your script completes very quickly

Most customers rely on AlwaysUp to manage their long-running applications. In fact, keeping an executable running 24/7 is the norm. AlwaysUp launches those applications at boot and they never stop running until the machine shuts down (or something goes wrong).

But there’s another use case that has grown in popularity over the years. Instead of starting an application and expecting it to run for a long time, some customers use AlwaysUp to run a script over and over again. And in that scenario, the script may only run for a few seconds.

For instance, one customer uses AlwaysUp start a Python script that scans a folder and imports its files into a database. Once the script completes, they have AlwaysUp launch it again in fifteen minutes.

If there are lots of files, the script may run for 30-40 seconds. On the other hand, if there are no files, the script returns almost immediately because there is no work to do.

Unfortunately, that “quick exit” would occasionally confuse AlwaysUp. Did the script do its work and complete normally? Or was there a problem that caused it to abort? More pointedly, should AlwaysUp treat the speedy exit as success or failure?

Instead of trying to determine the answer programmatically — which has proven to be quite challenging — we decided to put you in the driver’s seat. After all, you understand your script much better than we do! 🙂

So if you’re running a program or script that can run and finish quickly — in less than five seconds — please enable this new option on the Restart tab:

Don't panic if your application completes very quickly

Once that’s in place, AlwaysUp won’t assault you with phantom errors when your application does its work and exits very quickly.


Other fixes & improvements

  • When setting up automatic logon to avoid Session 0, your auto-start applications will now be launched in the new session by default. That’s what most customers want. As a result, this option will usually be checked:

    Auto-start AlwaysUp applications in the logon session
  • Improved efficiency when processing records from the Windows Event Logs. The new code makes a difference when AlwaysUp has to sift through tens of thousands of records in the System or Application logs.

  • When running a custom sanity check program/script, AlwaysUp will now treat a failure to launch the program as an inconclusive result. The application won’t be restarted, as it would have been in previous versions.

    We made this change to avoid spurious restarts, because those failures were likely unrelated to the application being monitored.

  • Full support for the official release of Windows Server 2025 (build number 26100.2605). Recent releases of AlwaysUp are also compatible with Server 2025, but version 16 is the best so far. 🙂

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


Upgrading to AlwaysUp 16

If you bought AlwaysUp version 15 (after December 2023), you can upgrade to version 16 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 14 or earlier (before December 2023), you’ll have to purchase a discounted upgrade to use version 16. Please purchase upgrades here — you’ll save 50% off the regular price.

See the complete upgrade policy for additional details.

Thank you for reading!

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

Leave a Reply

Your email address will not be published. Required fields are marked *