windows service自动重启服务

服务一般都能正常的运行,但有时候也会有一些假死现象,比如公司有一考勤服务就因为依赖于硬件厂家的api,

但厂家api运行一段时间后会默名的假死,引起整个服务假死,因为这一假死现象具有不确定性,所以不太可能

看到假死后手动去进行启动。

目前本人知道的有两种方法解决这种情况:

1.写另一个服务,对此当前服务进行监听【需要一些共同数据来判断是否为假死】,一但发现假死,进行重新启动
2.利用服务本身进行重启。

a.打开 控制面板-》管理工具-》服务,找到需要自动重启服务,点击右键-》属性,点击 恢复 选项卡, 将 ”第一次失败(F)",”第二次失败(S)",”后续失败(U)"都设定为"重新启动服务",点击确定,如图:
    
   b.服务程序中开一线程,进行假死判断, 一旦发现假死,执行 Environment.Exit(1); 这样服务在退出后会重新进行启动
注:此方法前提条件是判断假死的线程还能正常运行。

windows service自动重启服务

时间: 2024-10-29 19:08:56

windows service自动重启服务的相关文章

一个简单的监控网站是否正常并自动重启服务的shell脚本

#!/bin/sh if [ -z "`curl --connect-timeout 15 --max-time 20 --head --silent http://localhost/index.php|head -n 1|grep '200'`" ];then echo -e "$(date +%Y-%m-%d)\n" killall nginx killall php-fpm /usr/local/nginx/sbin/nginx -c conf/nginx.

Node.js热部署代码,实现修改代码后自动重启服务方便实时调试

写PHP等脚本语言的时候,已经习惯了修改完代码直接打开浏览器去查看最新的效果.而Node.js 只有在第一次引用时才会去解析脚本文件,以后都会直接访问内存,避免重复载入,这种设计虽然有利于提高性能,却不利于开发调试. 在没有使用第三方工具的情况下,通常修改js文件后需要手动CTRL+C终止程序,再重新启动node服务,这显然是一件很繁琐的事情. 于是就出现了很多第三方的管理工具(例如:supervisor.hotnode.forever.pm2等),当文件修改保存后,它能自动重启node服务,帮

.Net Remoting的双向通信和Windows Service的宿主服务

原文:.Net Remoting的双向通信和Windows Service的宿主服务 作为微软分布式技术之一的.Net Remoting,从性能.安全等各方面来说都是相对比较稳定的,也是一项比较成熟的分布式技术. 从学习.Net Remoting至今,仅仅只使用了一次这门技术,是在去年的一个IM产品中.最近公司的产品出现了很多问题,服务器.通信接口.网站都陆续被攻击(DDOS).这对于做互联网产业的同行来说就清楚这里面的关系,强大的DDOS攻击可以直接让产品无法正常运营甚至停止运营. 经过一系列

[转]监控windows服务,当服务停止后自动重启服务

近期花时间研究了一下windows和linux下某服务停了后自动重启的功能,在网上收集了些资料,并经过测试,在此整理一下.这里介绍的是windows服务的监控,是通过批处理来实现的.本例是监控windows的Computer Browser为例,每60秒检测一次(可根据实际需要调整间隔),当发现服务停止后自动重启.AutostartService.bat批处理文件内容如下 @echo off rem 定义循环间隔时间和监测的服务: set secs=60 set srvname="Compute

如何让Service自动重启而不被kill掉

重写service的onStartCommand方法. @Override public int onStartCommand(Intent intent, int flags, int startId) { return START_STICKY; } 简单介绍下这个方法,在Android开发的过程中,每次调用startService(Intent)的时候,都会调用该Service对象的onStartCommand(Intent,int,int)方法,然后在onStartCommand方法中做

在windows 上自动重启 tomcat 的方法

实现思路: Windows 上监控tomcat 进程并且自动重启的脚本 一类是 定时重启 tomcat 一类是 监控并重启 写一个守护tomcat进程 的脚本,间隔指定时间去访问 某个URL,对比HTTP 状态码是否为 200,如果不是,则重启tomcat. 实现方法: 下载一个 windows 对应版本的 curl.exe ,将文件放入  C:\Windows\System32 目录下 写一个 bat 脚本 @echo off set num=0 :loop set "httpcode=&qu

nodejs之pm2自动重启服务

pm2 start xxx #启动服务器 pm2 list #查看运行状态 pm2 logs #查看日志 pm2 restart xxx #重启应用 pm2 stop xxx #停止应用 监听修改,并自动重启: pm2 start xxx --watch(重启的是服务端代码,浏览器需刷新) 原文地址:https://www.cnblogs.com/winyh/p/10437203.html

监控windows服务,当服务停止后自动重启服务

@echo offrem 定义循环间隔时间和监测的服务:set secs=60set srvname="ServerName" echo.echo ========================================echo == 查询计算机服务的状态, ==echo == 每间隔%secs%秒种进行一次查询, ==echo == 如发现其停止,则立即启动. ==echo ========================================echo.echo 此

monit 监控并自动重启服务

原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://coolerfeng.blog.51cto.com/133059/50126 Monit是一款功能非常丰富的进程.文件.目录和设备的监测软件,用于Unix平台. 它可以自动修复那些已经停止运作的程序,特使适合处理那些由于多种原因导致的软件错误.monit运行于应用层 安装很简单,三部曲 #./configure #make #make install 复制配置文件 # cp mo