2007年5月22日星期二

Windows服务控制

前文"Resin服务重新启动控制"中用的的重启resin服务的方法,有一个问题就是:当系统本身有类似resin.exe等以resin命名的可执行文件时,系统环境变量设置的不同,会造成不同的影响。

例如MySQL就有这个问题:在%MySQL_HOME%\bin目录中,本身就有mysql.exe文件, 在安装MySQL时,可以选择是否将MySQL安装目录放进系统环境变量中,但是推荐放进去,因为我们经常需要执行MySql本身的mysql.exe,以便于在命令行下操作MySql。

在Windows Server 2003系统命令行下输入
> start /?
可以查看start命令的用法,不带参数时默认启动一个新的命令行窗口。而直接在运行里输入start则提示"Windows找不到文件'start',..."说明Windows Server 2003和其他Win系统不同, 没有start.exe文件,start命令是集成的 (搜索结果也表明如此)。

为了避免命令重复造成的问题,创建启动服务的批处理文件保存为startup.bat,如下:
startup.bat
@echo off
if "%1"=="" goto help

net start %1
goto end

:help
echo [Usage] startup {service_name}
goto end
:end
 

stop.bat
@echo off
if "%1"=="" goto help

net stop %1
goto end

:help
echo [Usage] stop {service_name}
goto end

:end


restart.bat
 
@echo off
if "%1"=="" goto help

net stop %1
net start %1
goto end

:help
echo [Usage] restart {service_name}
goto end

:end

把如上三个文件所在目录添加到系统变量Path中。现在我们可以使用上面的通用批处理进行服务的启动,停止,重启操作了。
> startup resin // 启动Resin Web Server.
> stop resin // 停止Resin Web Server.
> restart mysql // 重启MySQL服务,注:安装MySql时可以设置服务名。


没有评论:

发表评论