方法1 使用nohup命令
nohup java -jar test.jar >/dev/null &
方法2 使用JavaServiceWrapper
Java Service Wrapper把java程序打包为服务。目前支持4种打包方式。
- WrapperSimpleApp
使用WrapperSimpleApp helper class来运行程序。 - WrapperStartStopApp
使用WrapperStartStopApp helper class - WrapperListener
建一个类implements the WrapperListener interface - WrapperJarApp
使用WrapperJarApp helper class
几种方式的具体描述,参见这里:
https://wrapper.tanukisoftware.com/doc/english/integrate.html
1. 类要implements Runnable
public class myclass implements Runnable{
public myclass() {
// register a shutdown hook for this class.
// a shutdown hook is an initialzed but not started thread, which will get up and run
// when the JVM is about to exit. this is used for short clean up tasks.
Runtime.getRuntime().addShutdownHook(new Thread(this));
System.out.println(">>> shutdown hook registered");
}
}
2. 进程结束时运行的程序写在这里
public void run() {
//结束进程时运行这里
}
3. 创建4个目录
mkdir -p /home/ftpuser/testapp/bin
mkdir -p /home/ftpuser/testapp/conf
mkdir -p /home/ftpuser/testapp/logs
mkdir -p /home/ftpuser/testapp/lib
mkdir -p /home/ftpuser/testapp/classes
cp -r testapp.jar /home/ftpuser/testapp/classes/
cd /home/ftpuser
wget http://wrapper.tanukisoftware.com/download/3.5.25/wrapper-linux-x86-64-3.5.25.tar.gz
tar -zxvf wrapper-linux-x86-64-3.5.25.tar.gz
cd wrapper-linux-x86-64-3.5.25
cp bin/wrapper /home/ftpuser/testapp/bin/
cp src/bin/sh.script.in /home/ftpuser/testapp/bin/
cp lib/* /home/ftpuser/testapp/lib/
cp conf/wrapper.conf /home/ftpuser/testapp/conf/
4. 修改 wrapper.conf
修改主类名
wrapper.java.mainclass=org.tanukisoftware.wrapper.WrapperSimpleApp
修改classpath
wrapper.java.classpath.1=../lib/wrapper.jar
wrapper.java.classpath.2=../classes/testapp.jar
示例:

入口类
wrapper.app.parameter.1=com.whirlpool.CloudWaher
5. 修改testapp-service
cd bin
cp sh.script.in testapp-service
APP_NAME="你的APP名字简写"
APP_LONG_NAME="你的APP全名"
下面加一行
basedir=/home/ftpuser/testapp
修改下面两句
WRAPPER_CMD="$basedir/bin/wrapper"
WRAPPER_CONF="$basedir/conf/wrapper.conf"
chmod +x smart-service
测试
./testapp console
6.创建软链接
sudo ln -s /home/ftpuser/testapp/bin/testapp-service /etc/init.d/testapp-service
设置开机启动
/sbin/chkconfig --del testapp-service
/sbin/chkconfig --add testapp-service # 保证能开机启动
启动:
/etc/init.d/testapp-service start
或
service testapp-service start
配置文件更多参考:
http://www.tuicool.com/articles/jqMv2q