`
flylynne
  • 浏览: 375939 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

守护进程

阅读更多
某程序(进程)在运行的时候可能挂掉,需要去监控该程序,并在它挂掉的时候重启之,确保该程序能一直运行。比如土net就经常挂,需要监控程序去监控。Linux下面似乎有守护进程的概念,Windows下面其实也很简单,dos批处理就可以搞定 :-)

需要了解如下几个命令,tasklist + find,ping。tasklist是列出所有进程,可以指定只列出某用户的进程,用/FI参数过滤。find /C可以去tasklist的结果中查找指定进程名,并输出个数。

还有个问题是如何设置每隔一段时间去检测进程是否在运行,我用的是ping命令自带的延迟参数-w,将IP地址设置成一个空地址,比如0.0.0.1,这样该命令会一直ping,直到一定n*w 毫秒后才返回(n和w分别是参数-n和-w指定的值)。

示例程序如下,红色部分需要根据需求进行替换,enjoy it!


:RESTART
tasklist /FI "username eq bigtree" | find /C "java" > temp.txt
set /p num= < temp.txt
del /F temp.txt
echo %num%

if "%num%" == "0"        start /D "E:\User\bigtree\program\comparison\" pos

ping -n 10 -w 2000 0.0.0.1 > temp.txt
del /F temp.txt
goto RESTART

注意1:goto语句是将监控程序设置成死循环,哇咔咔。
注意2:可以用start /D path program去异步调用program程序,也就是不等program指定完毕就执行下面的语句,因此可以设置固定间隔(n*w毫秒)去监测。
    [flash=200,200][/flash]如果用call program则是同步调用,会等待program执行完毕,这样延迟就用不着了。


下载QQDownLoad总是下载不完
首先是crontab.cmd文件(如果在unix/linux下用crontab那真是很简单的事了= =)

Java代码
1.:RESTART  
2.tasklist /FI "username eq administrator" | find /C "QQDownload" > temp.txt  
3.set /p num=<temp.txt  
4.del /F temp.txt  
5. 
6.if %num%==0 start /D "E:\Program Files\Tencent\QQDownload2\" QQDownload
7. 
8.cscript //nologo sleep.vbs  
9.goto RESTART 
tasklist是显示所有进程列表,/FI过滤出特定用户的进程,|是管道符么,windows下也有管道符么。。作用是将前面的输出作为后面的输入,find查找指定字符串,/C输出指定字符串出现的数量。只要驴子当掉了,find到的数量应该是0,则重新启动驴子。

cscript //nologo sleep.vbs这句是执行vbs脚本。sleep.vbs作用就是sleep一定时间(等于没说吧喂!),就一行内容,时间多少自行设定,我定了10分钟,是不是太短了呢?

Java代码
1.wscript.sleep(600000) 
wscript.sleep(600000)
这样就OK了,运行crontab.cmd应该就能起到守护作用了吧?(什么叫应该啊自己验证下啊混蛋)

不过,为了一些执着的怨念,我还要加上一个vbs脚本,来让难看的cmd窗口不用显示,crontab.vbs内容如下:

Java代码
1.createobject("wscript.shell").run "crontab.cmd",0 
createobject("wscript.shell").run "crontab.cmd",0
后面的参数0就表示不显示cmd窗口。

好了,再做点表面工程,把crontab.vbs拖个快捷方式到桌面,改个名,换个好看的图标,好,完成了。
分享到:
评论

相关推荐

    守护进程,背靠背c++实现

    守护进程在计算机系统中扮演着重要的角色,它们通常在后台运行,不与用户直接交互,负责执行特定的任务,如服务管理、日志记录、定时任务等。在本话题中,我们将深入探讨守护进程的原理、C/C++实现以及如何设计具有...

    windows守护进程小工具

    "Windows守护进程小工具"是一种实用程序,设计用于确保特定应用程序始终在Windows操作系统上运行。这个工具的核心功能是监控指定的程序,如果发现该程序未运行,它将自动启动该程序。这为用户提供了保障,确保关键...

    Delphi写的守护进程.zip

    《Delphi编写的守护进程详解》 在IT领域,守护进程(Daemon)是一种在后台运行且没有用户界面的程序,通常用于执行特定的任务,如监控系统状态或提供网络服务。在Windows操作系统中,我们可以利用Delphi这样的编程...

    c#实现的守护进程,包含代码

    在IT行业中,守护进程(Daemon)通常是指在操作系统后台运行且独立于用户会话的长期服务程序。在Unix/Linux系统中,我们常看到各种守护进程,而在Windows系统中,我们可以用相似的概念来理解,比如服务(Service)。...

    守护进程(互相监听)

    在IT领域,守护进程(Daemon)是一种在后台运行的特殊类型的服务程序,它们不与任何终端关联,通常在操作系统启动时启动,持续运行直到系统关闭。守护进程在各种服务、监控任务以及系统管理中扮演着重要角色。在...

    Qt编写守护进程

    本篇文章提供一个软件实现守护进程的办法,原理就是udp通信,单独写个守护进程程序,专门负责检测主程序是否存在,不存在则启动。主程序只需要启动live类监听端口,收到hello就回复ok就行。 为了使得兼容任意程序,...

    C#控制台实现的一个简单的守护进程程序

    在C#编程环境中,开发一个控制台应用作为守护进程(Daemon)是常见的需求,尤其在服务器端软件中,为了确保核心服务的持续运行,我们往往需要一个后台程序来监控并管理这些服务。在这个名为"C#控制台实现的一个简单...

    编写Linux守护进程.pdf

    《编写Linux守护进程》这篇文献主要探讨了如何在Linux操作系统中创建和管理守护进程,这是一种在后台运行且独立于控制终端的进程,常用于提供系统服务,如HTTP服务器、打印服务等。守护进程的主要特点包括: 1. **...

    java实现守护进程,有单独的监听进程, 两个或多个进程,两个或多个jvm

    在Java编程环境中,实现守护进程(Daemon)以及创建多个进程和JVM是非常常见的需求,特别是在构建分布式系统或者需要持续后台运行的服务时。本篇将详细阐述如何使用Java来实现这些功能。 守护进程通常是一个在后台...

    python编写守护进程实现当python进程被杀后重启进程的源代码

    在Python编程中,守护进程(Daemon)是一种特殊类型的后台进程,它不依附于终端,且能在系统启动时启动,并在系统关闭时终止。守护进程常用于提供持续的服务,例如Web服务器、数据库服务等。本篇文章将深入探讨如何...

    Linux中将Tomcat添加到守护进程

    在Linux环境中,为了确保应用程序如Tomcat能够随系统自动启动并作为守护进程运行,需要进行一系列的配置步骤。本文将详细介绍如何将Tomcat添加到Linux的守护进程,并处理"Invalid user name 'tomcat' specified"的...

    vc++守护进程守护一个程序的开启,关闭自动打开.

    在计算机编程领域,特别是Windows操作系统环境下,守护进程(也称为后台服务)是一种长期运行、通常独立于用户交互之外的程序。它主要用于执行系统管理任务或提供某种持续性的功能支持。在VC++环境下创建守护进程,...

    Delphi写的守护进程(服务程序)

    《使用Delphi构建守护进程(服务程序)》 在IT领域,守护进程和服务程序是操作系统中不可或缺的部分,它们常在后台运行,确保关键任务的稳定执行。本文将深入探讨如何利用Delphi编程语言来创建一个守护进程,该进程...

    Windows下 tomcat的守护进程、心跳程序

    ### Windows 下 Tomcat 的守护进程与心跳检测程序详解 在 IT 领域,特别是 Java Web 开发中,Apache Tomcat 是一个非常重要的轻量级应用服务器,它主要用于部署 Java Web 应用程序。在实际生产环境中,为了保证服务...

    daemon守护进程经典

    守护进程(daemon)是Linux和Unix-like操作系统中的一个重要概念,它们是后台运行的程序,不与任何终端直接关联,主要用于提供系统服务,如网络服务、日志记录、打印队列等。守护进程在系统启动时启动,持续运行直到...

    守护进程 如果指定进程被关闭则重启进程.zip

    在IT领域,守护进程(Daemon)是一种在后台运行且没有控制终端的进程,通常用于提供系统服务,如网络服务、日志记录等。守护进程在操作系统中扮演着重要的角色,因为它们可以持续运行,即使没有用户登录也能提供必要...

    如何写守护进程

    ### 如何编写守护进程 守护进程(Daemon Process)是一种在后台持续运行的进程,它不依附于任何用户终端并且独立于控制台之外。守护进程主要用于执行特定的任务或提供服务,例如日志管理、定时任务处理等。本文将...

    后台进程与守护进程的区别

    ### 后台进程与守护进程的区别 在深入探讨后台进程与守护进程的区别之前,我们先来明确一下两者的基本概念。 #### 后台进程 后台进程(Background Process)是指那些在操作系统后台默默工作,无需用户直接干预的...

    Linux系统下守护进程编程方法

    ### Linux系统下守护进程编程方法 #### 一、守护进程概览 守护进程(Daemons)是Linux系统中一类特殊的服务程序,它们通常在后台运行,没有控制终端,也不依赖于任何登录Shell。守护进程的设计目标是高可靠性,...

Global site tag (gtag.js) - Google Analytics