只有流过血的手指,才能弹出世间的绝唱。——泰戈尔 分享一个部署boot项目的sh脚本 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273#环境变量source /etc/profile#!/bin/sh#jdkJAVA_HOME=/此处换成真实jdk路径export PATH=$PATH:$JAVA_HOME/binexport BUILD_ID=dontkillme#定义程序名 及jar包的名PROJECT_NAME=此处换成真实jar名称.jarLOG_NAME=日志名.log## 编写判断程序是否正在运行的方法isExist() { ## 首先查找进程号 pid=$(ps -ef | grep ${PROJECT_NAME} | grep -v "grep" | awk '{print $2}') echo "${pid}" ## 如果进程号不存在,则返回0 否则返回1 if [ -z "${pid}" ]; then return 0 else return 1 fi}## 编写启动程序方法start() { ## 调用 判断程序是否正在运行的方法 isExist ## 判断方法返回值是否等于0 ,等于则不存在 if [ $? -eq "0" ]; then echo "${PROJECT_NAME} is starting ......" nohup java -jar ${PROJECT_NAME} --spring.profiles.active=prod >${LOG_NAME} 2>&1 & echo "${PROJECT_NAME} startup success" else echo "${PROJECT_NAME} is already running, pid=${pid}" restart fi}## 编写停止程序的方法stop() { ## 调用 判断程序是否正在运行 isExist ## 判断是否存在,返回值0不存在 if [ $? -eq "0" ]; then echo "${PROJECT_NAME} is not running ......" else echo "${PROJECT_NAME} is already running, pid=${pid}, prepare kill it " kill -9 ${pid} echo "${PROJECT_NAME} has been successfully killed ......" fi}## 编写重启方法restart() { ## 先停止再启动 stop start}## 程序最开始执行的## 根据用户输入,判断执行方法case "$1" in"start") start ;;"stop") stop ;;"restart") restart ;;*) echo "please enter the correct commands: " echo "such as : sh startup.sh [ start | stop | restart ]" ;;esac