1,下载wrapper
下载地址:https://wrapper.tanukisoftware.com/doc/english/download.jsp#stable
安装包目录结构:
功能介绍:cat README_en.txt
2,使用wrapper后台启动java程序
2.1,编写java样例程序
HelloWorldServer.java具体代码参考:https://wrapper.tanukisoftware.com/doc/english/app-hello-world-server.html#source
com.my.Test2
public class Test2 {
public static void main(String[] args) throws InterruptedException {
System.out.println("start wrapper success");
int i=1;
while (true){
System.out.println(i++);
Thread.sleep(1000);
}
}
}
2.2,配置wrapper
参考 https://wrapper.tanukisoftware.com/doc/english/qna-unix-daemon.html
[root@c7 wrapper-linux-x86-64-3.5.49]# vim conf/wrapper.conf
#set.JAVA_HOME=/java/path
#wrapper.java.command=%JAVA_HOME%/bin/java
# Tell the Wrapper to log the full generated Java command line.
#wrapper.java.command.loglevel=INFO
# Java Main class. This class must implement the WrapperListener interface
# or guarantee that the WrapperManager class is initialized. Helper
# classes are provided to do this for you.
# See the following page for details:
# http://wrapper.tanukisoftware.com/doc/english/integrate.html
#wrapper.java.mainclass=org.tanukisoftware.wrapper.test.Main
#wrapper.java.mainclass=com.my.Test
wrapper.java.mainclass=org.tanukisoftware.wrapper.WrapperSimpleApp
#wrapper.app.parameter.1=com.my.Test2
wrapper.app.parameter.1=HelloWorldServer
# Log level for notices about missing Java Classpath entries.
wrapper.java.classpath.missing.loglevel=WARN
# Java Classpath (include wrapper.jar) Add class path elements as
# needed starting from 1
wrapper.java.classpath.1=../lib/wrappertest.jar
wrapper.java.classpath.2=../lib/wrapper.jar
wrapper.java.classpath.3=../lib/test-java*.jar
wrapper.java.classpath.4=../lib/classes
# Java Library Path (location of Wrapper.DLL or libwrapper.so)
wrapper.java.library.path.1=../lib
2.3,拷贝启动脚本
[root@c7 wrapper-linux-x86-64-3.5.49]# cp src/bin/App.sh.in bin/helloworldserver
[root@c7 wrapper-linux-x86-64-3.5.49]# chmod +x helloworldserver
[root@c7 wrapper-linux-x86-64-3.5.49]# vim bin/helloworldserver
#APP_NAME="@app.name@"
#APP_LONG_NAME="@app.long.name@"
APP_NAME="helloworldserver"
APP_LONG_NAME="helloworldserver"
# If uncommented (and set to false), APP_NAME and APP_LONG_NAME will no longer
# be passed to the wrapper. See documentation for details.
#APP_NAME_PASS_TO_WRAPPER=false
# Wrapper
WRAPPER_CMD="./wrapper"
WRAPPER_CONF="../conf/wrapper.conf"
2.4,启动服务
前台启动服务,用来调试
- 说明:bin/start.sh 调用了 bin/wrapper【二进制文件】 来启动程序
直接使用wrapper启动程序 【前台】
#./wrapper <command> <configuration file>
[root@c7 bin]# ./wrapper -c ../conf/wrapper.conf
wrapper | --> Wrapper Started as Console
wrapper | Java Service Wrapper Community Edition 64-bit 3.5.49
wrapper | Copyright (C) 1999-2022 Tanuki Software, Ltd. All Rights Reserved.
wrapper | http://wrapper.tanukisoftware.com
wrapper |
wrapper | Launching a JVM...
jvm 1 | WrapperManager: Initializing...
jvm 1 | Accepting connections on port: 9000
使用sart.sh 启动程序 【前台】
[root@c7 bin]# ./helloworldserver console
Running helloworldserver...
wrapper | --> Wrapper Started as Console
wrapper | Java Service Wrapper Community Edition 64-bit 3.5.49
wrapper | Copyright (C) 1999-2022 Tanuki Software, Ltd. All Rights Reserved.
wrapper | http://wrapper.tanukisoftware.com
wrapper |
wrapper | Launching a JVM...
jvm 1 | WrapperManager: Initializing...
jvm 1 | Accepting connections on port: 9000
后台启动服务