使用 Java Service Wrapper 启动java后台进程服务

 Java Service Wrapper (http://wrapper.tanukisoftware.com/doc/english/product-overview.html)可以很方便得在各个平台(windows,linux,max os)管理Java进程,管理JVM,启动停止,开机启动,管理内存溢出的异常  标准版还可以发错误日志email,检测死锁

比自己写个启动脚本更为方便通用稳定,后台服务可以考虑使用JSW。

这里使用免费的社区版,可以先直接跑一下demo看效果。

基本原理就是 java org.tanukisoftware.wrapper.WrapperSimpleApp ,传递本程序的main程序过去,以此方式启动进程。

这里介绍下启动openfire的步骤

1 本应用的目录分为lib conf logs bin

2 拷贝{WRAPPER_HOME}\bin\wrapper  {WRAPPER_HOME}\src\bin\sh.script.in  到本应用的bin目录,并更改sh.script.in为自己的应用名,如openfire_control, 更改两个文件的权限为可执行

openfire_control 设置本app名称

APP_NAME="openfire" APP_LONG_NAME="openfire"

3 拷贝{WRAPPER_HOME}\lib 到本应用的 wrapper目录,

4 拷贝{WRAPPER_HOME}\conf wrapper到wrapper目录,更改 wrapper.conf: 

wrapper.working.dir=..

set.default.REPO_DIR=lib

set.default.APP_BASE=.

 

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

wrapper.java.classpath.2=conf

wrapper.java.classpath.3=lib/*.jar 

wrapper.java.additional.1=-d64

wrapper.java.additional.2=-server

wrapper.java.additional.3=-DopenfireHome=/data1/openfire

wrapper.java.library.path.1=wrapper

# Initial Java Heap Size (in MB)

wrapper.java.initmemory=600

 

# Maximum Java Heap Size (in MB)

wrapper.java.maxmemory=600

 

# Application parameters.  Add parameters as needed starting from 1

wrapper.app.parameter.1=org.jivesoftware.openfire.starter.ServerStarter

wrapper.logfile=logs/wrapper.log

5 bin目录下执行 ./openfire_control start,如果应用未启动则到logs目录检查并排除之

debug模式:

Linux/ UNIX Command line Example:

./wrapper ../conf/wrapper.conf wrapper.debug=TRUE

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏kevin-blog

linux下修改文件所属用户组和文件权限的方法

第一个是修改文件所属的的用户,第二个修改文件所属用户组,-R属性为可选属性,意思是递归修改,也就是把文件下所有文件,包括子目录一起修改,大多数情况下-R 属性都...

3.1K1
来自专栏技术墨客

ESC服务搭建CheckList 原

注意:ESC有安全策略组,修改端口时需要在ESC的管理页面上检查相关的端口是否开放。

964
来自专栏JavaEdge

Linux-vi编辑器开发必备操作常用指令

3625
来自专栏郭少华

Spring boot热部署(三)

CTRL + SHIFT + A --> 查找make project automatically --> 选中

1.3K1
来自专栏Java面试笔试题

举例说明同步和异步

如果系统中存在临界资源(资源数量少于竞争资源的线程数量的资源),例如正在写的数据以后可能被另一个线程读到,或者正在读的数据可能已经被另一个线程写过了,那么这些数...

1234
来自专栏我和PYTHON有个约会

Django来敲门升级版--[扩展篇]--认证authenticate

Django默认提供了自己的身份认证系统,默认配置下提供有封装好的简单的用户类型以供开发人员直接使用

943
来自专栏玄魂工作室

Hacker基础之Linux篇:基础Linux命令四

我们继续学习Linux 1. egrep egrep命令用于在文件内查找指定的字符串。 egrep执行效果与grep-E相似,使用的语法及参数可参照grep指...

30810
来自专栏编程微刊

(javascript)Vue启动时常见错误及其解决办法

解决方案1: 首先是检查下你的路径有没有错;其次是你import的时候加上.vue后缀试试(components/star/star.vue) 解决方法2:...

3224
来自专栏Java技术分享圈

杨老师课堂之JavaEE三大框架Struts2入门第一课

...

693
来自专栏黑泽君的专栏

Java主函数解释、java/javac命令解释、classpath解释

任何一段程序必须要有一个执行的起始点,有一个入口,这个入口就是主函数,本质上这个主函数就被虚拟机所调用。 即:主函数是一个入口、它被虚拟机所调用、有了主函数就能...

1061

扫码关注云+社区

领取腾讯云代金券