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

    然后就会看到 这个服务的信息,有几个是开启状态有几个是关闭状态,这个是对的。

  

原文地址:https://www.cnblogs.com/renjianjun/p/13564923.html