{"id":13594,"date":"2026-08-20T15:22:27","date_gmt":"2026-08-20T22:22:27","guid":{"rendered":"https:\/\/www.coretechnologies.com\/blog\/?p=13594"},"modified":"2026-08-20T15:22:27","modified_gmt":"2026-08-20T22:22:27","slug":"windows-service-says-running-but-not-working","status":"publish","type":"post","link":"https:\/\/www.coretechnologies.com\/blog\/service-protector\/windows-service-says-running-but-not-working\/","title":{"rendered":"Your Windows Service Says &#8220;Running,&#8221; But Is It Actually Working?"},"content":{"rendered":"<div align=\"center\"><img loading=\"lazy\" decoding=\"async\" class=\"no-lazy-load\" src=\"\/blog\/images\/windows-service-running-not-working-256x256.webp\" style=\"margin-bottom:20px;\" title=\"Your Windows Service Says Running, But Is It Actually Working?\" alt=\"Your Windows Service Says Running, But Is It Actually Working?\" border=\"0\" width=\"256\" height=\"256\"><\/div>\n<p>A green &#8220;Running&#8221; status in <a href=\"\/blog\/windows-services\/essential-tools-windows-services-msc\/\">Services.msc<\/a> can be very reassuring. Indeed, it means that your service&#8217;s executable is still active.<\/p>\n<p>But it&#8217;s <b>NOT<\/b> proof that your application is healthy &mdash; serving requests, processing jobs or accepting connections.<\/p>\n<p>The truth is that even though a Windows Service is technically running, it can still be utterly useless. <b>A lifeless zombie, dead on its feet.<\/b><\/p>\n<hr class=\"blog-section\">\n<div style=\"width:100%;margin-bottom:30px;\">\n<div style=\"margin:0px;float:right;\"><a href=\"#top\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/cdn.coretechnologies.com\/images\/top.jpg\" border=\"0\" width=\"50\" height=\"18\" title=\"Go to the top\" alt=\"\"><\/a><\/div>\n<\/div>\n<h2 class=\"blog-caption\">The most frustrating kind of outage<\/h2>\n<p>Application crashes are never welcome.<\/p>\n<p>But in the spectrum of failures, a clear, unambiguous crash (where the process dies) is the easiest to deal with. That&#8217;s because it&#8217;s relatively straightforward to determine when a process exits and react accordingly.<\/p>\n<p>It&#8217;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 <b>the service is actually down<\/b> because customers cannot complete the tasks they need to perform.<\/p>\n<p>The result? Prolonged, frustrating outages.<\/p>\n<hr class=\"blog-section\">\n<div style=\"width:100%;margin-bottom:30px;\">\n<div style=\"margin:0px;float:right;\"><a href=\"#top\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/cdn.coretechnologies.com\/images\/top.jpg\" border=\"0\" width=\"50\" height=\"18\" title=\"Go to the top\" alt=\"\"><\/a><\/div>\n<\/div>\n<h2 class=\"blog-caption\">Common examples of &#8220;running but not working&#8221;<\/h2>\n<p>If we define failure as &#8220;not working&#8221;, there are a variety of ways a running Windows Service can fail.<\/p>\n<p>For example, users will complain loudly when:<\/p>\n<ul class=\"unsupported-list\">\n<li>\n<p>A <b>network service<\/b> accepts a connection but never returns a response.<\/p>\n<\/li>\n<li>\n<p>A <b>queue processor<\/b> is alive but no longer consuming messages.<\/p>\n<\/li>\n<li>\n<p>A <b>database service<\/b> is running but cannot accept useful work.<\/p>\n<\/li>\n<li>\n<p>A <b>web server<\/b> accepts HTTPS requests but always responds with a 5XX error.<\/p>\n<\/li>\n<li>\n<p>An <b>integration service<\/b> has lost access to a remote dependency.<\/p>\n<\/li>\n<li>\n<p>A <b>backup service<\/b> stops uploading files to the cloud.<\/p>\n<\/li>\n<\/ul>\n<p>You can probably think of other scenarios as well.<\/p>\n<hr class=\"blog-section\">\n<div style=\"width:100%;margin-bottom:30px;\">\n<div style=\"margin:0px;float:right;\"><a href=\"#top\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/cdn.coretechnologies.com\/images\/top.jpg\" border=\"0\" width=\"50\" height=\"18\" title=\"Go to the top\" alt=\"\"><\/a><\/div>\n<\/div>\n<h2 class=\"blog-caption\">Why Windows cannot always see the problem<\/h2>\n<p>Windows can easily determine whether your service has started, stopped or reported a status. It can even detect when your service process crashes &mdash; and quickly restart it.<\/p>\n<p>But <a href=\"\/products\/ServiceProtector\/WhyWindowsServiceNotRestarted\/\">that&#8217;s the limit of what the operating system can do<\/a>. It cannot automatically know whether every application-specific business operation is succeeding.<\/p>\n<p>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.<\/p>\n<p>And because of that general-purpose approach, Windows doesn&#8217;t even attempt to understand how your program works. The result is that <b>Windows never checks if your service is actually doing its job<\/b>.<\/p>\n<hr class=\"blog-section\">\n<div style=\"width:100%;margin-bottom:30px;\">\n<div style=\"margin:0px;float:right;\"><a href=\"#top\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/cdn.coretechnologies.com\/images\/top.jpg\" border=\"0\" width=\"50\" height=\"18\" title=\"Go to the top\" alt=\"\"><\/a><\/div>\n<\/div>\n<h2 class=\"blog-caption\">Service Protector checks the work, not just the process<\/h2>\n<p>Fortunately, <a href=\"\/products\/ServiceProtector\/\">Service Protector<\/a> closes the gaps.<\/p>\n<p>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.<\/p>\n<p>For example, Service Protector can check:<\/p>\n<ul class=\"checkmark-list\">\n<li>\n<p>Is your service using <b>too much memory or CPU<\/b>?<\/p>\n<\/li>\n<li>\n<p>Is a <b>drive letter mapped<\/b> and accessible?<\/p>\n<\/li>\n<li>\n<p>Was a special <b>file updated<\/b> recently?<\/p>\n<\/li>\n<li>\n<p>Is a network server <b>accepting TCP\/IP connections<\/b>?<\/p>\n<\/li>\n<li>\n<p>Is a web server <b>responding properly<\/b>?<\/p>\n<\/li>\n<li>\n<p>Is an important\/helper <b>program or service running<\/b>?<\/p>\n<\/li>\n<li>\n<p>Does your service have one or more <b>network connections open<\/b>?<\/p>\n<\/li>\n<li>\n<p>Was an <b>adverse Windows event<\/b> reported while your service was running?<\/p>\n<\/li>\n<li>\n<p>Does your service have <b>too many operating system handles<\/b> open?<\/p>\n<\/li>\n<\/ul>\n<p>And if none of those work for you, extend Service Protector with a <b>custom health check<\/b> &mdash; a probe that works for your unique situation.<\/p>\n<hr class=\"blog-section\">\n<div style=\"width:100%;margin-bottom:30px;\">\n<div style=\"margin:0px;float:right;\"><a href=\"#top\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/cdn.coretechnologies.com\/images\/top.jpg\" border=\"0\" width=\"50\" height=\"18\" title=\"Go to the top\" alt=\"\"><\/a><\/div>\n<\/div>\n<h2 class=\"blog-caption\">Example #1: Automatically restart your service if it&#8217;s using too much memory<\/h2>\n<p>If your service is a memory hog, have no fear. Service Protector will calculate the executable&#8217;s memory usage every few seconds and promptly restart it if it exceeds a specific threshold.<\/p>\n<p>Just enter the threshold and you&#8217;ll be good to go:<\/p>\n<div align=\"center\"><a href=\"\/blog\/images\/set-your-service-memory-threshold.png\" class=\"zoomPopup\" title=\"Set the memory threshold for your service\" target=\"_blank\" rel=\"noopener\"><img decoding=\"async\" class=\"image-padding\" src=\"\/blog\/images\/set-your-service-memory-threshold.png\" title=\"Set the memory threshold for your service (click to enlarge)\" alt=\"Set the memory threshold for your service\" border=\"0\"><\/a><\/div>\n<hr class=\"blog-section\">\n<div style=\"width:100%;margin-bottom:30px;\">\n<div style=\"margin:0px;float:right;\"><a href=\"#top\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/cdn.coretechnologies.com\/images\/top.jpg\" border=\"0\" width=\"50\" height=\"18\" title=\"Go to the top\" alt=\"\"><\/a><\/div>\n<\/div>\n<h2 class=\"blog-caption\">Example #2: Automatically restart your service if it has no open network connections<\/h2>\n<p>Are you running a Windows Service that must always be listening for connections?<\/p>\n<p>If so, Service Protector will periodically scan your server and recycle it if it&#8217;s not accepting connections.<\/p>\n<p>Install a <a href=\"\/blog\/service-protector\/version-8-released\/\">&#8220;network connections&#8221; sanity check<\/a> to do the trick. Start by entering what kind of network connections are expected:<\/p>\n<div align=\"center\"><a href=\"\/blog\/images\/service-network-connections-sanity-check.png\" class=\"zoomPopup\" title=\"Check that your service always has a network connection\" target=\"_blank\" rel=\"noopener\"><img decoding=\"async\" class=\"image-padding\" src=\"\/blog\/images\/service-network-connections-sanity-check.png\" title=\"Check that your service always has a network connection (click to enlarge)\" alt=\"Check that your service always has a network connection\" border=\"0\"><\/a><\/div>\n<p>Afterwards, enter how often Service Protector should check your server and you&#8217;ll be all set.<\/p>\n<hr class=\"blog-section\">\n<div style=\"width:100%;margin-bottom:30px;\">\n<div style=\"margin:0px;float:right;\"><a href=\"#top\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/cdn.coretechnologies.com\/images\/top.jpg\" border=\"0\" width=\"50\" height=\"18\" title=\"Go to the top\" alt=\"\"><\/a><\/div>\n<\/div>\n<h2 class=\"blog-caption\">Try Service Protector completely free for a month &mdash; no strings attached<\/h2>\n<p>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&#8217;ll know soon if it&#8217;s what you need.<\/p>\n<div align=\"center\" style=\"margin-top:30px;\">\n<a href=\"\/products\/ServiceProtector\/ServiceProtector_Installer.exe\"><img\n\tsrc=\"https:\/\/cdn.coretechnologies.com\/images\/download-trial-176x50.webp\"\n\twidth=\"176\" height=\"50\" border=\"0\" alt=\"For Windows 11\/10 &amp; Windows Server 2025\/2022\/2019\/2016\"\n\ttitle=\"For Windows 11\/10 &amp; Windows Server 2025\/2022\/2019\/2016\"><\/a>\n<\/div>\n<ul class=\"checkmark-list\">\n<li><b>100% compatible<\/b> with all current versions of Windows<\/li>\n<li><b>No signup<\/b> necessary<\/li>\n<li><b>No credit card<\/b> required<\/li>\n<li><b>No advertising<\/b> of any kind<\/li>\n<li><b>Easy uninstall<\/b> if it doesn&#8217;t solve your problem<\/li>\n<\/ul>\n<div style=\"margin-top:30px\" align=\"center\">\n<div class=\"cta-button-1\">\n<table role=\"presentation\" cellspacing=\"0\" cellpadding=\"0\" border=\"0\" align=\"left\">\n<tbody>\n<tr>\n<td align=\"center\"><a href=\"\/blog\/tag\/service-protector-tag\/\" title=\"Click to read more articles about Service Protector\"><span class=\"nobr\">More about Service Protector&#8230;<\/span><\/a><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<!-- relpost-thumb-wrapper --><div class=\"relpost-thumb-wrapper\"><!-- filter-class --><div class=\"relpost-thumb-container\"><style>.relpost-block-single-image, .relpost-post-image { margin-bottom: 10px; }<\/style><h3>You may also like...<\/h3><div style=\"clear: both\"><\/div><div style=\"clear: both\"><\/div><!-- relpost-block-container --><div class=\"relpost-block-container relpost-block-column-layout\" style=\"--relposth-columns: 3;--relposth-columns_t: 2; --relposth-columns_m: 2\"><a href=\"https:\/\/www.coretechnologies.com\/blog\/support\/apache-log4j-vulnerability\/\"class=\"relpost-block-single\" ><div class=\"relpost-custom-block-single\"><img decoding=\"async\" loading=\"lazy\" class=\"relpost-block-single-image\" alt=\"We&#039;re Not Affected by the December 2021 Apache Log4j Vulnerability\"  src=\"https:\/\/www.coretechnologies.com\/blog\/wp-content\/uploads\/log4j-vulnerability-150x150-1.png\" style=\"aspect-ratio:1\/1\" style=\"aspect-ratio:1\/1\"><\/img><div class=\"relpost-block-single-text\"  style=\"height: 75px;font-family: Arial;  font-size: 12px;  color: #333333;\"><h2 class=\"relpost_card_title\">We&#039;re Not Affected by the December 2021 Apache Log4j Vulnerability<\/h2><\/div><\/div><\/a><a href=\"https:\/\/www.coretechnologies.com\/blog\/miscellaneous\/artwork-from-our-web-site\/\"class=\"relpost-block-single\" ><div class=\"relpost-custom-block-single\"><img decoding=\"async\" loading=\"lazy\" class=\"relpost-block-single-image\" alt=\"Artwork from our Web Site\"  src=\"https:\/\/www.coretechnologies.com\/blog\/wp-content\/uploads\/alwaysup-boxshot-150x150.png\" style=\"aspect-ratio:1\/1\" style=\"aspect-ratio:1\/1\"><\/img><div class=\"relpost-block-single-text\"  style=\"height: 75px;font-family: Arial;  font-size: 12px;  color: #333333;\"><h2 class=\"relpost_card_title\">Artwork from our Web Site<\/h2><\/div><\/div><\/a><a href=\"https:\/\/www.coretechnologies.com\/blog\/windows-services\/windows-service-vs-regular-application\/\"class=\"relpost-block-single\" ><div class=\"relpost-custom-block-single\"><img decoding=\"async\" loading=\"lazy\" class=\"relpost-block-single-image\" alt=\"Top 10 differences between a Windows Service and a regular application\"  src=\"https:\/\/www.coretechnologies.com\/blog\/wp-content\/uploads\/top-10-150x150.png\" style=\"aspect-ratio:1\/1\" style=\"aspect-ratio:1\/1\"><\/img><div class=\"relpost-block-single-text\"  style=\"height: 75px;font-family: Arial;  font-size: 12px;  color: #333333;\"><h2 class=\"relpost_card_title\">The Top 10 Differences Between a Windows Service and a Regular Application<\/h2><\/div><\/div><\/a><\/div><!-- close relpost-block-container --><div style=\"clear: both\"><\/div><\/div><!-- close filter class --><\/div><!-- close relpost-thumb-wrapper -->","protected":false},"excerpt":{"rendered":"<p>A green &#8220;Running&#8221; status in Services.msc can be very reassuring. Indeed, it means that your service&#8217;s executable is still active. But it&#8217;s NOT proof that your application is healthy &mdash; serving requests, processing jobs or accepting connections. The truth is &hellip; <a href=\"https:\/\/www.coretechnologies.com\/blog\/service-protector\/windows-service-says-running-but-not-working\/\">Continue reading <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":13600,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[10],"tags":[226,409,333,138,147,410,151],"class_list":["post-13594","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-service-protector","tag-failure-detection","tag-memory-hog-check","tag-network-connections-sanity-check","tag-sanity-check","tag-service-protector-tag","tag-service-running-not-working","tag-services-msc"],"_links":{"self":[{"href":"https:\/\/www.coretechnologies.com\/blog\/wp-json\/wp\/v2\/posts\/13594","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.coretechnologies.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.coretechnologies.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.coretechnologies.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.coretechnologies.com\/blog\/wp-json\/wp\/v2\/comments?post=13594"}],"version-history":[{"count":18,"href":"https:\/\/www.coretechnologies.com\/blog\/wp-json\/wp\/v2\/posts\/13594\/revisions"}],"predecessor-version":[{"id":13664,"href":"https:\/\/www.coretechnologies.com\/blog\/wp-json\/wp\/v2\/posts\/13594\/revisions\/13664"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.coretechnologies.com\/blog\/wp-json\/wp\/v2\/media\/13600"}],"wp:attachment":[{"href":"https:\/\/www.coretechnologies.com\/blog\/wp-json\/wp\/v2\/media?parent=13594"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.coretechnologies.com\/blog\/wp-json\/wp\/v2\/categories?post=13594"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.coretechnologies.com\/blog\/wp-json\/wp\/v2\/tags?post=13594"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}