linux jar自启动
linux系统中,springboot项目导出的jar包,如果需要开机自启动,这里是我的脚本文件,虚拟机上测试通过的
start-jar.sh
放到/etc/init.d下
#!/bin/sh # chkconfig: 2345 85 15 # description:auto_run
#jdk环境 JAVA_HOME=/www/server/jdk1.8.0_211 CLASSPATH=$JAVA_HOME/lib/ PATH=$PATH:$JAVA_HOME/bin export PATH JAVA_HOME CLASSPATH #JAR根位置 JAR_ROOT=/application/triage-call #jar的名字 name="deal-task pager rabbitmq screen triage triage-admin websocket media-admin media-netty" #log位置 LOG_PATH="./" #开始方法 start() { cd $JAR_ROOT for i in $name; do echo "nohup java -jar ${i}.jar >${LOG_PATH}log_${i}.file 2>&1 &" nohup java -jar ${i}.jar >${LOG_PATH}log_${i}.file 2>&1 & echo "echo $! > /var/run/${i}.pid" echo $! > /var/run/${i}.pid done } #结束方法 stop() { for i in $name; do kill -9 `ps -ef|grep $i|grep -v grep|grep -v stop|awk '{print $2}'` done } case "$1" in start) start ;; stop) stop ;; restart) stop start ;; *) echo "Userage: $0 {start|stop|restart}" exit 1 esac
成功启动测试过的
1,添加授权
chmod +x start-jar.sh
2,chkconfig —add start-jar.sh
3,chkconfig —start-jar.sh on
下边是rabbitmq,tomcat,nginx,redis的自启动
#!/bin/bash
#chkconfig:2345 80 05
echo 重置环境变量........
source /etc/profile
echo 启动Redis.........
cd /usr/local/redis/bin/
./redis-server redis.conf
ps aux|grep redis
if [ "$?" == 0 ];then
echo redis启动成功.....
fi
echo 启动rabbitmq............
rabbitmq-server -detached
if [ "$?" == 0 ];then
echo rabbitmq启动成功.......
fi
echo 启动nginx...........
nginx
if [ "$?" == 0 ];then
echo nginx启动成功
fi
echo 启动防火墙............
systemctl restart iptables.service
if [ "$?"==0 ];then
echo 防火墙启动成功...........
fi
echo 启动tomcat....
cd /application/apache-tomcat-8.5.51/bin/
./startup.sh
ps aux|grep tomcat
if [ "$?" == 0 ];then
echo tomcat启动成功.....
fi
ps: 注意的事项:
1,脚本文件需要放到/etc/init.d下【脚本名称自己起: 比如:a.sh】
2,脚本文件需要授权 chomod +x 文件全名称【a.sh】
3, 添加服务中 chkconfig --add 文件全名称【a.sh】
4, 开启开机自动 chkconfig 文件全名称【a.sh】 on
5, 查看 chkconfig --list
然后就会看到 这个服务的信息,有几个是开启状态有几个是关闭状态,这个是对的。