我们在使用java时,常常需要把jar包设置为开机自启动,保证机器在断电重启后仍然能正常的执行jar提供的服务,在部署再ubuntu系统中的操作过程如下
1.上传jar到指定的路径下,如上传到/home/test/jarTest/test.jar
2.写脚本:
#!/bin/bash
### BEGIN INIT INFO
# Provides:xlt
# Required-Start:$local_fs $remote_fs $network $syslog $named
# Required-Stop:$local_fs $remote_fs $network $syslog $named
# Default-Start:2 3 4 5
# Default-Stop:0 1 6
# Short-Description:starts the police web server
# Description:starts police using start-stop-daemon
### END INIT INFO
NAME=/home/test/jarTest/test.jar
echo $NAME
ID=`ps -ef | grep -v grep | grep $NAME | awk '{print $2}'`
echo $ID
echo "-----------------"
for id in $ID
do
kill -9 $id
echo "killed $id"
done
echo "beginning start jar"
echo "---------- test server have been stoped already ------------------"
export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-amd64
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH
#source /etc/profile
nohup java -Xms512m -Xmx2048m -jar $NAME &
echo "--------- test server is running... : ps -ef | grep test ----------------"
3.把脚本copy到系统 /etc/init.d目录下 并设置权限
sudo chmod 755 /etc/init.d/test.sh
4.
添加脚本到系统启动脚本
将上面的脚本添加到系统启动脚本
cd /etc/init.d
sudo update-rc.d test.sh defaults 90 #90代表启动脚本的先后顺序
这样就能实现每次开机后jar包能正常启动,无需每次断电后都需要手动启动了