1. 程式人生 > 實用技巧 >linux jar自啟動

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

然後就會看到 這個服務的資訊,有幾個是開啟狀態有幾個是關閉狀態,這個是對的。