最近使用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 )