在Linux系統中,開機啟動配置文件通常位于/etc/init.d
目錄下,并且是一個腳本文件,該腳本可以通過service
命令或systemctl
命令來啟動、停止、重啟服務。
1、創建一個服務腳本?/etc/init.d/ruoyi.sh
#!/bin/bashCURRENT_PATH=$(pwd)
JAR_NAME="ruoyi-admin"
APP_PORT=9002
APP_ENV=druidinit() {for name in `find . -name *.jar`doif [[ "${name##*.}"x = "jar"x ]]thenJAR_NAME=${name##*/}echo ${JAR_NAME}returnfidone
}usage() {echo "Usage: sh deploy.sh [start|stop|restart|status] port"exit 1
}status(){pid=`ps -ef|grep ${JAR_NAME}|grep -v grep|awk '{print $2}'`if [[ -z "${pid}" ]]; thenecho "${JAR_NAME} is not running"return 1elseecho "${JAR_NAME} is already running. pid=${pid}"return 0fi
}start(){echo "port ${APP_PORT}"statusif [[ $? -eq 1 ]]; thenecho "${JAR_NAME} is starting"nohup java -jar -Xms200m -Xmx200m -XX:+HeapDumpOnOutOfMemoryError ${JAR_NAME} --spring.profiles.active=${APP_ENV} --server.port=${APP_PORT} --shiro.session.expireTime=10080 --shiro.session.validationInterval=120 --ruoyi.addressEnabled=true --spring.datasource.druid.master.url=jdbc:mysql://localhost:3307/ruoyi?useUnicode=true&characterEncoding=UTF-8&autoReconnect=true&serverTimezone=Asia/Shanghai > run.log 2>&1 &fi
}stop(){
statusif [[ $? -eq "0" ]]; thenecho "${JAR_NAME} is stopping"#kill ==> kill -15#kill -9 強殺#cat pid | xargs killkill -15 ${pid}#等待一段時間sleep 8#強殺pid=`ps -ef|grep ${JAR_NAME}|grep -v grep|awk '{print $2}'`if [[ -z "${pid}" ]]; thenecho "${JAR_NAME} is closing"elsekill -9 ${pid}fifi
}restart(){stopsleep 3start
}initif [[ -z "$2" ]]; thenecho "no port param!"
elseAPP_PORT=$2
ficase "$1" in"start")start;;"stop")stop;;"status")status;;"restart")restart;;*)usage;;
esac
2、給腳本賦權限
sudo chmod +x /etc/init.d/ruoyi.sh
3、使用systemctl
配置服務以開機啟動
sudo systemctl enable ruoyi.sh