利用instsrv和srvany来手动安装服务

Windows提供了两个小工具instsrv.exe和srvany.exe来把任何应用包装成windows服务。顾名思义instsrv(install service)是用来安装服务的,而srvany(service anything)包装任何服务的外壳。下载instsrv.exe和srvany.exe.

由于nginx的windows应用没有服务,使用起来不太方便,这里趁机利用一下把nginx安装成windows服务,步骤如下:

1、 首先使用instsrv把srvany安装成服务,instsrv的命令格式(instsrv.exe /?):
[code lang=”text”]
INSTSRV <service name> (<exe location> | REMOVE)
[-a <Account Name>] [-p <Account Password>]

Install service example:

INSTSRV MyService C:\MyDir\DiskService.Exe
-OR-
INSTSRV MyService C:\mailsrv\mailsrv.exe -a MYDOMAIN\joebob -p foo

Remove service example:

INSTSRV MyService REMOVE
[/code]
location是完整路径哦。
因此我的安装命令
[code]
instsrv.exe nginx e:\temp\clean_day\nginx-1.4.7\srvany.exe
[/code]

2、 第一步把服务外壳安装好了,这里就要配置这个外壳来执行的真正应用了。这里需要修改注册表
运行Regedit.exe,打开“注册表编辑器”;
依次展开如下子键:[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services],在该子键下找到并右击nginx(对应步骤1建立的服务名),选择“新建”下的“项”,将其命名为Parameters。
单击选定Parameters,在右侧窗口中新建一个名为Application的字符串值,将其数值数据设置为nginx服务对应的应用程序绝对路径,比如:E:\temp\clean_day\nginx-1.4.7\nginx.exe;
接着再新建两个字符串值:AppDirectory和AppParameters,AppDirectory指定程序所在的目录,如:E:\temp\clean_day\nginx-1.4.7;
AppParameters指明程序运行的参数,如果没有可以不用设值;
启动服务
完毕你就可以用net命令启动/停止,或者sc命令配置服务了。
删除服务
可以使用instsrv的remove选项来删除服务,当然也可以用sc命令。