转载: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. Oracle备份恢复之冷备份恢复与异机还原

    (同平台:rhel6.4~rhel6.4:同版本:oracle 11g 11.2.0.1~ oracle 11g 11.2.0.1) 冷备份发生在数据库关闭状态下,直接拷贝物理文件的备份方式,备份数据 ...

  2. 牛客练习赛18E pocky游戏 状压dp

    正解:状压dp+辅助dp 解题报告: 来还债辣!NOIp之后还是轻松很多了呢,可以一点点儿落实之前欠下的各种东西一点点提升自己!加油鸭! 是个好题,可以积累套路,启发性强,而且很难 哦而且状压它也是个 ...

  3. 前端(以Vue为例)webpack打包后dist文件包如何部署到django后台中

    由于现在前端使用的三大框架配合webpack可以实现快速打包,为部署到服务端提供了非常大的便利,那么在前端打包后,应该做些什么可以部署到django的后台中呢? 1.打包后文件包dist 进入到 di ...

  4. 配合dedecms内容模型实现后台输入栏目id前端输出文章列表

    为了简化开发的工作量,也方便编辑快速操作,决定将后台进行重新设置.配合dedecms内容模型实现后台输入栏目id前端输出文章列表,这样制作科室专题页也变快了很多.比如,我们添加一个“科室专家栏目id” ...

  5. JVM学习笔记-内存管理

    第一章 内存分配 1. 内存区域.     方法区和堆(线程共享),程序计数器 , VM栈 和 本地方法栈(线程隔离).     1) java虚拟机栈:线程私有.描写叙述的是java方法执行的内存模 ...

  6. bootstrap modal插件弹出窗口如何限制最大高度,并且在内容过多时可以滚动显示

    .modal-body{ max-height:400px; overflow-y:auto; } 只有在modal-body类上限制高度才能起作用,其他地方的限制均不起作用

  7. 实习培训——Java基础(1)

    实习培训——Java基础(1) 1.我的第一个JAVA程序 首先好配置好JDK环境,百度上有很多.创建文件HelloWorld.java(文件名与类名相同),代码如下: public class He ...

  8. print(array)时array中间是省略号没有输出全部的解决方法

    import numpy as np np.set_printoptions(threshold=np.inf) 大量元素情况 可以采用set_printoptions(threshold='nan' ...

  9. TouchSlide触屏滑动特效插件的使用

    官方连接:http://www.superslide2.com/TouchSlide/ TouchSlide 是纯javascript打造的触屏滑动特效插件,面向手机.平板电脑等移动终端, 能实现触屏 ...

  10. Atcoder Tenka1 Programmer Contest 2019 D Three Colors

    题意: 有\(n\)个石头,每个石头有权值,可以给它们染'R', 'G', 'B'三种颜色,如下定义一种染色方案为合法方案: 所有石头都染上了一种颜色 令\(R, G, B\)为染了'R', 染了'G ...