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:MyDirDiskService.Exe
    -OR-
    INSTSRV MyService C:mailsrvmailsrv.exe -a MYDOMAINjoebob -p foo

  Remove service example:

    INSTSRV MyService REMOVE

location是完整路径哦。
因此我的安装命令

instsrv.exe nginx e:	empclean_day
ginx-1.4.7srvany.exe

第一步把服务外壳安装好了,这里就要配置这个外壳来执行的真正应用了。这里需要修改注册表

运行Regedit.exe,打开“注册表编辑器”;
依次展开如下子键:[HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServices],在该子键下找到并右击nginx(对应步骤1建立的服务名),选择“新建”下的“项”,将其命名为Parameters。
单击选定Parameters,在右侧窗口中新建一个名为Application的字符串值,将其数值数据设置为nginx服务对应的应用程序绝对路径,比如:E: empclean_day
ginx-1.4.7
ginx.exe;
接着再新建两个字符串值:AppDirectory和AppParameters,AppDirectory指定程序所在的目录,如:E: empclean_day
ginx-1.4.7;
AppParameters指明程序运行的参数,如果没有可以不用设值;

启动服务
完毕你就可以用net命令启动/停止,或者sc命令配置服务了。

删除服务
可以使用instsrv的remove选项来删除服务,当然也可以用sc命令。

如果为了方便,你也可以做成bat文件,包括安装、卸载、启动、停止,甚至于操作注册表。有兴趣的同学自己尝试一下。