今天早上起来的时候发现电驴5点钟的时候挂了,于是有几个应该已经下完的东西还停留在95%的样子。郁闷之外想写个守护进程的脚本,上网搜了下找到这位同学的博客[url]http://thubigtree.spaces.live.com/Blog/cns!425ECAF90EEDA1A2!328.entry[/url],略加修改便拿来用了。
首先是crontab.cmd文件(如果在unix/linux下用crontab那真是很简单的事了= =)
tasklist是显示所有进程列表,/FI过滤出特定用户的进程,|是管道符么,windows下也有管道符么。。作用是将前面的输出作为后面的输入,find查找指定字符串,/C输出指定字符串出现的数量。只要驴子当掉了,find到的数量应该是0,则重新启动驴子。
cscript //nologo sleep.vbs这句是执行vbs脚本。sleep.vbs作用就是sleep一定时间(等于没说吧喂!),就一行内容,时间多少自行设定,我定了10分钟,是不是太短了呢?
这样就OK了,运行crontab.cmd应该就能起到守护作用了吧?(什么叫应该啊自己验证下啊混蛋)
不过,为了一些执着的怨念,我还要加上一个vbs脚本,来让难看的cmd窗口不用显示,crontab.vbs内容如下:
后面的参数0就表示不显示cmd窗口。
好了,再做点表面工程,把crontab.vbs拖个快捷方式到桌面,改个名,换个好看的图标,好,完成了。
首先是crontab.cmd文件(如果在unix/linux下用crontab那真是很简单的事了= =)
:RESTART
tasklist /FI "username eq administrator" | find /C "emule" > temp.txt
set /p num=<temp.txt
del /F temp.txt
if %num%==0 start /D "D:\Program Files\emule\" emule
cscript //nologo sleep.vbs
goto RESTART
tasklist是显示所有进程列表,/FI过滤出特定用户的进程,|是管道符么,windows下也有管道符么。。作用是将前面的输出作为后面的输入,find查找指定字符串,/C输出指定字符串出现的数量。只要驴子当掉了,find到的数量应该是0,则重新启动驴子。
cscript //nologo sleep.vbs这句是执行vbs脚本。sleep.vbs作用就是sleep一定时间(等于没说吧喂!),就一行内容,时间多少自行设定,我定了10分钟,是不是太短了呢?
wscript.sleep(600000)
这样就OK了,运行crontab.cmd应该就能起到守护作用了吧?(什么叫应该啊自己验证下啊混蛋)
不过,为了一些执着的怨念,我还要加上一个vbs脚本,来让难看的cmd窗口不用显示,crontab.vbs内容如下:
createobject("wscript.shell").run "crontab.cmd",0
后面的参数0就表示不显示cmd窗口。
好了,再做点表面工程,把crontab.vbs拖个快捷方式到桌面,改个名,换个好看的图标,好,完成了。