转载:http://blog.csdn.net/anddy926/article/details/8464142

在客户端服务器项目实践中,作为服务端必须保持程序的24小时不间断运行,需要做一个监控,当监控到该程序已关闭时则重新启动下。

有两种方法可以实现这个功能:

第一是做windows服务,作为后台的系统服务监控程序的运行状态。

第二是编写另外一个程序作为监控程序,通过添加计划任务,将监控程序设置为开机启动。

网上讨论两者的区别很少,大概都是集中在监控程序有界面而windows服务没有界面,其实监控程序也是可以写成没有界面显示,只是后台运行,即只能在任务管理器里面看到进程。 自己总结了下,注册一个服务,也是调用本地的一个exe来实现的,只不过该EXE入口函数包装了windows服务的一些参数,或者说服务就是将本地的exe包装了一下。在启动服务的时候,其实际使用的还是exe程序的。两者的主要区别:
一、启动时间与启动域不同,windows服务在用户未登陆(即计算机账号设置了密码,需要输入密码才进入系统)时已开始启动,而自启动程序启动时间为登陆后。同样的,程序作用范围为一个该帐户下运行,而服务是一个work
station,你切换不同帐户该服务还是在运行中的。

三、windows服务可以设置运行时候参数,比如设置为无法关闭,而自启动程序在任务管理器中直接关闭是可以X掉的。

最后一点:
  一方面、自启动程序一般是GUI程序,能够跟桌面交互的。一个应用程序可以包括很多进程,不过一般应用程序也只是运行一个进程。可以设置自启动程序无界面,运行于后台,我感觉这样其实跟服务没有什么区别了。

另外一方面、一个服务其实就是运行在后台的进程,与桌面无交互。服务只能有一个进程,在服务上启动其他程序在桌面上也是不会出现界面的,要出现界面,必须在设置服务时候选择与界面交互(这个时候服务启动的其他程序出现界面了,该服务依然是没有界面)。

说了这么多,其实制作windows服务监控与直接编程另外一个程序作为自启动程序来监控其实没有差别。

补充:如果windows服务程序或者自启动程序因为异常自身退出了,这个时候两者表现有差别。windows服务程序可以通过设置异常后自动重启来保持一直监控,而自启动程序只能通过计划任务,重启或者编写另外的程序来启动了。

windows服务与自启动程序的区别(转载)的更多相关文章

  1. 如何把一个c语言程序做成windows服务开机自启动

    原文:如何把一个c语言程序做成windows服务开机自启动 目前写的程序是一个用c语言实现socket侦听的,那么如何把这个程序做成开机自启动呢? 我们是通过vs6.0,编译后生成了.exe文件,然后 ...

  2. vs 2010创建Windows服务定时timer程序

    vs 2010创建Windows服务定时timer程序: 版权声明:本文为搜集借鉴各类文章的原创文章,转载请注明出处:  http://www.cnblogs.com/2186009311CFF/p/ ...

  3. 制作Windows服务和安装程序(C#版)

    http://blog.sina.com.cn/s/blog_5f4ffa170100vt2b.html 1.创建服务项目: 打开VS 2005 编程环境,在C#中新建Windows服务程序 2.将安 ...

  4. 基于Windows服务的聊天程序(一)

    本文将演示怎么通过C#开发部署一个Windows服务,该服务提供各客户端的信息通讯,适用于局域网.采用TCP协议,单一服务器连接模式为一对多:多台服务器的情况下,当客户端连接数超过预设值时可自动进行负 ...

  5. (转)为C# Windows服务添加安装程序

    本文转载自:http://kamiff.iteye.com/blog/507129 最近一直在搞Windows服务,也有了不少经验,感觉权限方面确定比一般程序要受限很多,但方便性也很多.像后台运行不阻 ...

  6. 基于Windows服务的聊天程序

    本文将演示怎么通过C#开发部署一个Windows服务,该服务提供各客户端的信息通讯,适用于局域网.采用TCP协议,单一服务器连接模式为一对多:多台服务器的情况下,当客户端连接数超过预设值时可自动进行负 ...

  7. 为C# Windows服务添加安装程序

    最近一直在搞Windows服务,也有了不少经验,感觉权限方面确定比一般程序要受限很多,但方便性也很多.像后台运行不阻塞系统,不用用户登录之类.哈哈,扯远了,今天讲一下那个怎么给Windows服务做个安 ...

  8. 第十三篇 一个安装、管理windows服务的桌面程序

    在网上看到一个修改程序入口的程序去把windows 服务修改成控制台的程序,然后利用控制台的程序把服务安装和管理,也想起自己原来也写了一个对windows 报务管理的程序,不过是winform的.   ...

  9. 将Nginx封装为Windows服务并自启动

    需要借助"Windows Service Wrapper"小工具,项目地址: https://github.com/kohsuke/winsw 下载地址:  http://repo ...

随机推荐

  1. h5地理位置API

    h5地理位置API 地理API允许javascript程序向浏览器询问用户的真实地理位置,支持地理位置API的浏览器在访问前总是会询问用户是否允许. 获取用户地理的途径有:         1.ip地 ...

  2. SecTools.Org--bp

    Burp Suite使用介绍(一) | WooYun知识库  http://drops.wooyun.org/tips/2227     我的渗透利器 | EVILCOS             fr ...

  3. http://www.cnblogs.com/linxiyue/p/8244724.html

    http://www.cnblogs.com/linxiyue/p/8244724.html

  4. PLSQL过程创建和调用

    存储过程 创建过程范例 create or replace procedure pro_kingsql_p1( p_one in varchar2,--可以传入参数 p_two out varchar ...

  5. 【python基础】字符串格式化(% VS format)

    字符串格式化 Python的字符串格式化有两种方式: 百分号方式.format方式 百分号的方式相对来说比较老,而format方式则是比较先进的方式,企图替换古老的方式,目前两者并存. 1.百分号方式 ...

  6. redis连接池的标准用法:

    from .conf import HOST, PORT, POOL_NAME import redis redis_pool = redis.ConnectionPool(host=HOST, po ...

  7. SQL SERVER 2008 误删数据且无全备恢复方法

    原文:http://www.jb51.net/article/84932.htm SQL Server中误删除数据的恢复本来不是件难事,从事务日志恢复即可.但是,这个恢复需要有两个前提条件: 1. 至 ...

  8. MYSQL常见的可优化点

    MYSQL常见的可优化点 SQL常见的可优化点 2014年6月8日 DBA 发表回复 # #################################################### 索引 ...

  9. ssm返回jsonp数据格式

    为了便于客户端使用数据,逐渐形成了一种非正式传输协议,人们把它称作JSONP,该协议的一个要点就是允许用户传递一个callback参数给服务端,然后服务端返回数据时会将这个callback参数作为函数 ...

  10. oj1500(Message Flood)字典树

    大意:输入几个字符串,然后再输入几个字符串,看第一次输入的字符串有多少没有在后面的字符串中出现(后输入的字符串不一定出现在之前的字符串中) #include <stdio.h> #incl ...