有个任务,需要远程起调Windows64服务器下的程序,那么需要在Windows服务器中注入一个deamon服务,都知道Linux环境做成后台服务非常简单,nohup &很快能解决问题,但windows环境总是多重磨难。 
一开始我先问了个朋友,他回答是没做成服务,是把写个Pathon包在java外面,然后编译成exe,在启动中加入,我一听觉得有些麻烦,还需要绕一圈才能起调。 
先搜Java windows service, 推荐首选Wrapper,并且大名鼎鼎的ActiveMQ也是用的他做的服务,经过验证,配置很简单,copy wrapper.exe, wrapper.dll, wrapper.jar到自己的目录,并配置一个wrapper.conf, 测试

  1. wrapper.exe -c wrapper.conf

发现有问题,需要一个licence key,需要购买。 
也许还有方法去破解,不过看了一个老外说wrapper对windows64位并不免费,并推荐Procrun之后,决定转到这一阵地,加上大名鼎鼎的Tomcat也是用它做的服务。整个配置如下:

1.下载prunsrv 
http://archive.apache.org/dist/commons/daemon/binaries/windows/ 
下载commons-daemon-1.0.8-bin-windows.zip 
网上找这个不容易,后来才在commons-daemon-1.0.8-bin-windows.zip里面找到这个,一般会找到http://commons.apache.org/daemon/download_daemon.cgi,这里面并没有prunsrv.exe 
解包后,64位机器用amd64/prunsrv.exe

2.解压后复制文件 
a. copy commons-daemon-1.0.8-bin-windows/amd64/prunsrv.exe to your app path 
这是做服务的执行程序 
b. copy commons-daemon-1.0.8-bin-windows/prunmgr.exe 并改名 yourappname.exe 
监控服务配置及运行的程序

3.写两个脚本 
a.一个安装bat

  1. @echo off
  2. set LIB_HOME=******
  3. set APP_HOME=******
  4. %APP_HOME%\prunsrv.exe //IS//StartService --DisplayName="Start Service" --Description="Start a server." ^
  5. --Install=%APP_HOME%\prunsrv.exe --Jvm=%JAVA_HOME%\jre\bin\server\jvm.dll --JvmMs=256 --JvmMx=1024 ^
  6. --StartMode=jvm --Startup=auto --StopMode=jvm --StartClass= --StartParams= ^
  7. --Classpath=%LIB_HOME%\*.jar; ^
  8. --LogPath= --LogPrefix=

^是windows命令的折行符,为了避免在一行中写过长的命令。(Linux 是\) 
在dos环境下执行这个脚本,执行后 
这样可以在控制面板-->管理工具-->服务里面可以看到名称为StartService的服务 
注意:--install=后面不要省%APP_HOME%\,不然会报告文件找不到 
补充一个exe方式的服务配置

  1. @echo off
  2. set APP_HOME=******
  3. %APP_HOME%\prunsrv.exe //IS//StartService --DisplayName="Start Service" --Description="Start a server." ^
  4. --Install=%APP_HOME%\prunsrv.exe ^
  5. --StartMode=exe --Startup=auto --StartPath=%APP_HOME% --StartImage=%APP_HOME%\appname.exe ^
  6. --LogPath=./logs --LogPrefix=

b.写一个uninstall脚本

  1. @echo off
  2. set APP_HOME=******
  3. %APP_HOME%\prunsrv.exe //DS//StartService

这个可以卸掉install的服务 
c.更详细的配置文档可以看apache文档 
http://commons.apache.org/daemon/procrun.html

最新文章

  1. 从零开始学Python第一周:Python基础(上)
  2. Coursera系列-R Programming-Final Week-Assignment3 & 总结
  3. 一个会Flash的人来说CSS3
  4. 网络流 POJ2112
  5. UDP穿透NAT原理解析
  6. poj 1816 (Trie + dfs)
  7. paip.utf-8,unicode编码的本质输出unicode文件原理 python
  8. 【地图API】地址录入时如何获得准确的经纬度?淘宝收货地址详解
  9. angular的splitter案例学习
  10. Android自动化压力测试快速入门教程(图解)——MonkeyRunner
  11. Create Custom Modal Dialog Windows For User Input In Oracle Forms
  12. mysql 获得当前月1号的日期 和 0点日期方法
  13. wikioi 1012最大公约数和最小公倍数【根据最大公约数和最小公倍数求原来的两个数a、b】
  14. 单实例Singleton
  15. C语言数组
  16. CSS检测的高像素密度屏幕设备
  17. word2vec原理(三) 基于Negative Sampling的模型
  18. orakill和ALTER SYSTEM KILL SESSION详解
  19. 搭建非域AlwaysOn win2016+SQL2016
  20. Python-炫酷二维码

热门文章

  1. Python2.7-operator
  2. python基础——类定义(转)
  3. 20155229《网络对抗技术》Exp4:恶意代码分析
  4. 牛客练习赛44 B题 (思维)
  5. 【php增删改查实例】第六节 - 部门管理模块(开始)
  6. http to https
  7. Kosaraju算法、Tarjan算法分析及证明--强连通分量的线性算法
  8. docker之搭建LNMP
  9. LABVIEW串口通信基础
  10. 博客配置Racket代码字体