上傳jar包到服務器使其開機自啟


思路:使用shell腳本實現注冊服務;
前提: 配置好jdk環境變量
一、編寫shell腳本
在/etc/rc.d/init.d目錄下創建autotest.sh腳本如下:

#保證該腳本能被chkconfig識別
#!/bin/sh
# chkconfig: 2345 85 15 
# description:auto_run

#程序名
RUN_NAME="check-1.0-SNAPSHOT.jar"

#jar 位置
JAVA_OPTS=/root/Java/check-1.0-SNAPSHOT.jar
LOG_OPTS=/root/Java/nohup.out

#開始方法
start() {
        source /etc/profile; nohup java -Dspring.profiles.active=prod -Dfile.encoding=UTF-8 -Duser.timezone=GMT+08 -jar $JAVA_OPTS >$LOG_OPTS 2>&1 &
        echo "$RUN_NAME started success."
}
 
#結束方法
stop() {
        echo "stopping $RUN_NAME ..."
        kill -9 `ps -ef|grep $JAVA_OPTS|grep -v grep|grep -v stop|awk '{print $2}'`
}
 
case "$1" in
        start)
            start
            ;;
        stop)
            stop
            ;;
        restart)
            stop
            start
            ;;
        *)
                echo "Userage: $0 {start|stop|restart}"
                exit 1
esac

  

注意:
1、 source /etc/profile; 剛開始沒加上,以為配置了jdk環境變量就可以,事實也是,如果直接執行java -jar 命令,程序能夠跑起來;但是在shell腳本中就不行了,加上此段代碼,指定jdk,成功解決!
2、 nohup 命令使用 2>&1 & 結尾,不然也會報錯;
3、新增文件時使用vim命令,不要在windows下創建文件后復制過去,因為換行符win與linux不同,避免報錯;

二、設置執行權限
將zhihudemo-0.0.1-SNAPSHOT.jar和zhihudemoService.sh加上執行權限:

chmod +x /etc/rc.d/init.d/auto-jar.sh
chmod +x /root/Java/check-1.0-SNAPSHOT.jar

三、添加到chkconfig
添加到chkconfig作為系統服務,並設置開機啟動:

chkconfig --add zhihudemoService.sh   (添加為系統服務)
chkconfig zhihudemoService.sh on  (開機自啟動)
service zhihudemoService.sh start(啟動服務)

 

執行完成后重啟,查看啟動日志,可以看到該jar包程序已經作為守護進程在系統后台運行

 

如果喜歡,請附帶此鏈接轉載。謝謝


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM