Windows提供了两个小工具instsrv.exe和srvany.exe来把任何应用包装成windows服务。顾名思义instsrv(install service)是用来安装服务的,而srvany(service anything)包装任何服务的外壳。下载instsrv.exe和srvany.exe.
由于nginx的windows应用没有服务,使用起来不太方便,这里趁机利用一下把nginx安装成windows服务,步骤如下:
- 首先使用instsrv把srvany安装成服务,instsrv的命令格式(instsrv.exe /?):
Installs and removes system services from NT 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 REMOVElocation是完整路径哦。
因此我的安装命令instsrv.exe nginx e:\temp\clean_day\nginx-1.4.7\srvany.exe
- 第一步把服务外壳安装好了,这里就要配置这个外壳来执行的真正应用了。这里需要修改注册表
- 运行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命令。
如果为了方便,你也可以做成bat文件,包括安装、卸载、启动、停止,甚至于操作注册表。有兴趣的同学自己尝试一下。