java注册一个服务_用Java Service Wrapper 注册一个系统服务

之前要想在系统开机启动一个Java进程,一般都是用脚本写到rc.local中。

还有一种办法是写了个服务脚本把它注册到系统服务,也可以开机启动。并可以通过service命令进行管理。

JavaServiceWrapper就是帮我们来做这个事。

下载地址在这里:

外链网址已屏蔽

有三个版本,社区版本是免费的。其他要钱也更高级,可以管理服务进程的一些异常情况。对于注册服务来说,社区版本也够用了。

我的原进程就是一个单一个jar包,把所有的依赖都打到一起了。通过下面的脚本启动:

java -jar xxx.jar

这个wrapper怎么用呢。下面就以linux版本做一个例子。

文件复制

下载linux对应版本后解压,从里面找到以下几个文件放到我的程序目录下:

wrapper

wrapper.conf

libwrapper.so

wrapper.jar

demoapp

修改wrapper.conf

这个是wrapper在启动服务时的一些配置,主要改动如下,其他详细配置可看官方文档。

wrapper.lang.encoding=UTF-8

mand=/usr/local/jdk1.8.0_60/bin/java

wrapper.java.mainclass=org.tanukisoftware.wrapper.WrapperJarApp

wrapper.java.classpath.1=./wrapper.jar

wrapper.java.classpath.2=/usr/local/jdk1.8.0_60/lib/dt.jar

wrapper.java.classpath.3=/usr/local/jdk1.8.0_60/lib/tools.jar

wrapper.java.classpath.4=./xxx.jar

wrapper.java.classpath.5=./log4j2.xml

wrapper.java.classpath.6=META-INF/MANIFEST.MF

wrapper.java.library.path.1=./

wrapper.app.parameter.1=./xxx.jar

wrapper.console.title=@app.long.name@

wrapper.name=@app.name@

wrapper.displayname=@app.long.name@

wrapper.description=@app.description@

修改demoapp

改为当前程序要注册的服务的信息

# Application

APP_NAME="xxx-service"

APP_LONG_NAME="xxx service"

# Wrapper

WRAPPER_CMD="./wrapper"

WRAPPER_CONF="./wrapper.conf"

执行demoapp install

将服务注册到系统

demoapp install

再启动一下系统就OK了

通过jps -lm可以看到启动的进程信息

1464 org.tanukisoftware.wrapper.WrapperJarApp ./xxx.jar

ps -ef | grep java 一下能看到启动了两个进程,有一个是wrapper。

netstat -ntap 还能看到这两个进程之间有一个内部通信连接。

再用service xxx-service status看一下服务状态, xxx-service 是在demoapp脚本里写的名称

xxx service is running: PID:1462, Wrapper:STARTED, Java:STARTED

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值