Linux创建 .sh 服务器启动脚本
vi startProject.sh
下面直接复制,只需要修改标红的4点即可
1 jar_name=demo-0.0.1-SNAPSHOT.jar 2 jar_path=/app/project/script/ 3 log_path=/app/project/log/`date +%y-%m-%d`_out.log 4 #指向自定义jdk 5 #export JAVA_HOME=/app/jdk1.8.0_251 6 #export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar 7 #export PATH=$JAVA_HOME/bin:$PATH 8 stop() { 9 echo "" 10 pid=$(ps -ef | grep $jar_name | grep -v grep | awk '{print $2}') 11 if [ -z $pid ]; then # -z 是判断是否为空 12 echo "${jar_name}未运行!" 13 else 14 echo "准备关闭进程$pid" 15 kill -9 $pid 16 sleep 0.5 17 echo "${jar_name}已关闭!" 18 fi 19 echo "" 20 } 21 22 start() { 23 echo "" 24 pid=$(ps -ef | grep $jar_name | grep -v grep | awk '{print $2}') 25 if [ -z $pid ]; then 26 cd $jar_path # 这里转到jar包目录执行命令,是为了使用jar_path下的config文件,貌似java程序只能识别当前执行命令目录下的配置,否则就是使用已打入Jar包的配置文件。 27 nohup java -jar $jar_name >$log_path 2>&1 & 28 pid=$(ps -ef | grep $jar_name | grep -v grep | awk '{print $2}') 29 echo "应用 ${jar_name}启动成功,pid=${pid}" 30 # tail -f $log_path 31 32 else 33 echo "应用 ${jar_name} 正在运行,pid = ${pid}" 34 fi 35 echo "" 36 } 37 38 status() { 39 echo "" 40 pid=$(ps -ef | grep $jar_name | grep -v grep | awk '{print $2}') 41 if [ -z $pid ]; then 42 echo "应用 ${jar_name} 未运行" 43 else 44 echo "应用 ${jar_name} 正在运行,pid = ${pid}" 45 fi 46 echo "" 47 48 } 49 restart() { 50 stop 51 52 sleep 2 53 echo "停止完成,准备启动jar包" 54 start 55 } 56 action() { 57 echo "请输入数字选择要执行的操作:1=启动,2=重启,3=停止,4=查看运行状态,5=退出" 58 echo '你输入的数字为:' 59 read a 60 case $a in 61 "1") 62 start 63 ;; 64 "2") 65 restart 66 ;; 67 "3") 68 stop 69 ;; 70 "4") 71 status 72 ;; 73 "5") 74 exit 1 75 ;; 76 *) 77 echo "输入错误,请重新输入" 78 action 79 ;; 80 esac 81 } 82 action
添加可执行权限
1 chmod 700 startProject.sh
执行
1 ./startProject.sh
演示:
原创文章,转载请说明出处,谢谢合作