写代码的人

Posts tagged ‘a’

介绍几种常用的注册window服务工具

介绍五种方式

一,微软官方工具包

.1. 下载nginx windows版本

http://www.nginx.org

2. 下载微软的2个工具: instsrv.exe、srvany.exe
去微软网站下载安装Windows Server 2003 Resource Kit Tools(rktools.exe),它包括标题提及的所有必要的工具,下载完安装好。

3. 运行命令
在rktools安装目录下(一般在C:\Program Files\Windows Resource Kits\Tools目录)可以发现这两个程序.在运行下面命令之前,确保将srvany.exe复制到nginx的安装(解压)目录下,然后运行:

Command代码
  1. instsrv Nginx D:\nginx\srvany.exe

这样就安装了一个名为Nginx的服务。也就是将srvany.exe注册成一个服务Nginx。Net start Nginx时,肯定会运行srvany.exe。

4. 配置Nginx的运行参数:目的是运行srvany.exe时,附带运行D:\nginx\nginx.exe程序。

可以直接将配置导入到注册表

Window register代码
  1. Windows Registry Editor Version 5.00
  2. [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\NGINX\Parameters]
  3. “Application”=”D:\\nginx\\nginx.exe”
  4. “AppParameters”=””
  5. “AppDirectory”=”D:\\nginx\\”

现在就可以通过控制面板->管理员工具->服务中找到该服务,并启动和停止了。
但是,当停止Nginix服务后,访问浏览器仍然能看到网站。查看进程,你会发现,Nginx启动了两个nginx进程(根据nginx.conf的配置worker_processes  1;),Fork出来的进程显然没有被停止,结果就是nginx永远关不掉。因此彻底关闭nginx请使用taskkill命令:

Command代码
  1. taskkill /F /IM nginx.exe > nul

结果是写一个stop_nginx脚本来处理nginx停止的所有操作

Command代码
  1. @echo off
  2. echo Stopping nginx service…
  3. net stop nginx
  4. echo Kill nginx process…
  5. taskkill /F /IM nginx.exe > nul

顺便,如果想删除服务,使用命令:

Command代码
  1. sc delete Nginx
原文:http://koda.javaeye.com/blog/600725     完全是copy过来的。。经测可用
二,利用小工具  AppToService  (找这个东东可能要费点劲)
demo:
D:\javatools\nginx-0.7.65>D:\javatools\cn.tsoft.system-empty\bin\AppToService.exe  /install nginx.exe /show:7 /absname:”nginx” /startup:A  /Arguments:”-p D:/javatools/nginx-0.7.65″   亲测可用
nginx如果不加  /Arguments:”-p D:/javatools/nginx-0.7.65″  这句会报
D:\javatools\nginx-0.7.65\nginx.exe:
could not open error log file: CreateFile() “logs/error.log” failed (3: The system cannot find the path specified)
错误   这个可以在系统日志中找到
三,利用小工具winsw-1.8-bin.exe
下载地址:
官方wiki:
我使用的demo如下:(D:/nginx 是我的nginx所在目录)
将winse*.exe 重命名为 nginxservice.exe  移动到D:/nginx 在同目录建立nginxservice.xml文件
内容如下:
<service>
 <id>nginx</id>
 <name>nginx</name>
 <description>nginx</description>
 <executable>D:/nginx/nginx.exe</executable>
 <logpath>D:/nginx/</logpath>
 <logmode>roll</logmode>
 <depend></depend>
 <startargument>-p D:/nginx</startargument>
 <stopargument>-p D:/nginx -s stop</stopargument>
</service>
然后执行nginxservice install    安装完成
注册这个服务的时候注意不要在路径中出现空格 比如 Program Files 这样的文件夹路径 否则会报路错误 在nginxservice.exe同级目录下的nginxservice.err.log文件看到错误内容
可以参考 : http://misterdai.wordpress.com/2009/10/16/nginx-windows-service/
四,apache的工具  tomcat就是用的这个
细看文档  还要window下面还要下一个 prunsrv.exe   好多人找不到 purnrv.exe这个文件
下载地址:http://apache.freelamp.com/commons/daemon/binaries/1.0.3/windows/
下载 commons-daemon-1.0.3-bin-windows.zip 就有这个文件
其实这个文件就是tomcat下面的tomcat6.exe 只是被重命名了
demo 就不写了 http://commons.apache.org/daemon/procrun.html  上面说得很清楚 wiki上面也有
这个用来作java 程序的服务是相当好的。提供不同平台的版本  曾经用这个和AppToService注册java服务。
demo也不好写了。。上面3个差不多就够用了