• Windows 64位环境的Java 服务配置


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

    Java代码  收藏代码
    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 

    Java代码  收藏代码
    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%jreinserverjvm.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方式的服务配置 

    Java代码  收藏代码
    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脚本 

    Java代码  收藏代码
    1. @echo off  
    2. set APP_HOME=******  
    3. %APP_HOME%prunsrv.exe //DS//StartService  


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

  • 相关阅读:
    大聊Python----SocketServer
    2、MySQL常见数据库引擎及比较?
    大聊Python----通过Socket实现简单的ssh客户端
    1、列举常见的关系型数据库和非关系型都有那些?
    uva12563 Jin Ge Jin Qu hao(01背包)
    UVA 12174 Shuffle(滑动窗口)
    C++中substr函数的用法
    uva11078
    11462 Age Sort(计数排序)
    UVA 11988 Broken Keyboard (a.k.a. Beiju Text) (链表,模拟)
  • 原文地址:https://www.cnblogs.com/logsharing/p/8176186.html
Copyright © 2020-2023  润新知