在linux下,用守护进程的形式启动server是非常重要的一个问题。比如在PHP下可用PHP脚本处理,node.js下可用forever处理。在java下呢?有java wrapper。
1、下载Javawrapper Community版,
http://wrapper.tanukisoftware.com/doc/english/download.jsp
下载wrapper-linux-x86-64-3.5.29.tar.gz。
2、解压,tar -xzvf wrapper-linux-x86-64-3.5.29.tar.gz
3、建立java守护进程目录,mkdir /usr/local/javaservice
4、复制java wrapper的四个文件夹到javaservice目录,
cd wrapper-linux-x86-64-3.5.29,
cp -R bin /usr/local/javaservice/,
cp -R conf /usr/local/javaservice/,
cp -R logs /usr/local/javaservice/,
cp -R lib /usr/local/javaservice/
5、cd /usr/local/javaservice,
vi conf/wrapper.conf,
⑴找到 wrapper.java.mainclass=,修改为
wrapper.java.mainclass=org.tanukisoftware.wrapper.WrapperSimpleApp
⑵找到 wrapper.app.parameter.1,修改为
wrapper.app.parameter.1=你真正要运行的javaclass
如果⑴处写你真正要运行的javaclass,会报错:
StartupFailed:TimedoutwaitingforasignalfromtheJVM
⑶找到wrapper.java.classpath.1=,修改为
wrapper.java.classpath.1=../lib/wrapper.jar
⑷如果你有自己的jar包,你可以创建一个文件夹,copy所有jar包到此文件夹,比如 /usr/local/javaservice/lib/
然后添加如下:
wrapper.java.classpath.2=../bin/
wrapper.java.classpath.3=/usr/local/javaservice/lib/*.jar
当然你也可以自己挨个添加所有的jar包,比如:
wrapper.java.classpath.3=/usr/local/javaservice/lib/a.jar
wrapper.java.classpath.4=/usr/local/javaservice/lib/b.jar ... ...
但是一定要注意jar的前后依赖顺序,否则可能后加载失败。
6、cd bin,
⑴cp testwrapper yourname,e.g cp testwrapper myjavaservice
⑵vi myjavaservice,你可以修改:
APP_NAME="testwrapper" 和 APP_LONG_NAME="Test Wrapper Sample Application"
⑶然后再APP_LONG_NAME的下一行添加:
basedir=your server path,e.g,basedir=/usr/local/javaservice
⑷然后修改 WRAPPER_CMD="./wrapper" 和 WRAPPER_CONF="../conf/wrapper.conf",改为:
WRAPPER_CMD="$basedir/bin/wrapper"
WRAPPER_CONF="$basedir/conf/wrapper.conf"
7、创建软链接
sudo ln -s /usr/local/bin/myjavaservice/etc/init.d/myjavaservice
8、设置开机启动
sudo chkconfig �levels 235 myjavaserviceon
9、启动:
/etc/init.d/myjavaservicestart 或
service myjavaservicestart
参考:
http://www.jb51.cc/article/p-pzfzdkqv-baa.html