灯火互联
管理员
管理员
  • 注册日期2011-07-27
  • 发帖数41778
  • QQ
  • 火币41290枚
  • 粉丝1086
  • 关注100
  • 终身成就奖
  • 最爱沙发
  • 忠实会员
  • 灌水天才奖
  • 贴图大师奖
  • 原创先锋奖
  • 特殊贡献奖
  • 宣传大使奖
  • 优秀斑竹奖
  • 社区明星
阅读:2864回复:0

Serv-U停止服务的另类解决方案(批处理监测并运行)

楼主#
更多 发布于:2013-06-02 18:23
执行计划+批处理。设置执行计划,每30分钟执行一个批处理任务。批处理的作用:读取进程列表,查看Serv-U进程是否存在;如果进程不存在,启动该服务并输出日志

 
最近使用Serv-U来架设FTP服务器,用于文件传输的桥梁。好景不长,每隔一段时间,Serv-U的服务就会自动停止。因为这个ftp服务很重要,要保证每天都能正常工作,如果只靠人每天来查看服务是否正常,牵涉精力不说,又不是十分靠谱。于是,google之。网上各种说法都有,如FTP在流量较大的情况下,Serv-U会因为繁忙而自动停止服务。总之,找不到Serv-U周期性停止服务的原因。没办法,只好转换思路:找不到Serv-U周期性停止服务的原因,那么在Serv-U服务停止后能够检测到服务停止自动启动Serv-U服务,这个方案也为尝不可。

方案:执行计划+批处理。设置执行计划,每30分钟执行一个批处理任务。批处理的作用:读取进程列表,查看Serv-U进程是否存在;如果进程不存在,启动该服务并输出日志。

下面是批处理实现部分:

复制代码 代码如下:

@echo off 
for /f "usebackq" %%i in (`"tasklist|find /c "Serv-U.exe""`) do ( 
set chkstat=%%i )  if %chkstat% == 0 ( net start Serv-U 
echo ================ >> %date:~0,10%.log 
echo %date% %time% check Serv-U service stop >> %date:~0,10%.log 
echo restart Serv-U service! >> %date:~0,10%.log 
echo ================ >> %date:~0,10%.log 
)

版本不容程序文件名也不一样,我们也可以用这个代码,监控别的程序。serv_u6版本需要将Serv-U.exe替换为ServUDaemon.exe即可。大家可以到tasklist中查看。一定要对应上exe文件名,与服务名。

喜欢0 评分0
游客

返回顶部