部署项目时每次要查看项目进程,杀死进程,重新上传,在进行运行

现在利用脚本,不需要那么多步骤,一步搞定

失败经历也应该记录下

1.上传本地脚本文件

SpringBoot 项目部署xshell服务器(脚本版)-LMLPHP

2.给脚本文件赋权限(赋值后变成绿色的了)

SpringBoot 项目部署xshell服务器(脚本版)-LMLPHP

赋完权限后直接用./文件名.sh  status(是脚本里查看状态)

3.发现发上去的编码集与服务器端不同

开始一系列在网上找修改编码集的命令,结果失败,最后删除文件

SpringBoot 项目部署xshell服务器(脚本版)-LMLPHP

4.新建文件

SpringBoot 项目部署xshell服务器(脚本版)-LMLPHP

5.vi命令复制脚本文件(vi命令网上有)

sh 文件.sh status(没有授权前的命令)

SpringBoot 项目部署xshell服务器(脚本版)-LMLPHP

6.对文件进行授权权限后,发现脚本里的东西没有复制全

SpringBoot 项目部署xshell服务器(脚本版)-LMLPHP

7.利用cat命令清空脚本文件内容,重新复制,再次查看脚本文件,看是否复制全了

SpringBoot 项目部署xshell服务器(脚本版)-LMLPHP

8.再次运行

SpringBoot 项目部署xshell服务器(脚本版)-LMLPHP

9.成功!!!!

脚本文件:


#!/bin/bash
#这里可替换为你自己的执行程序,其他代码无需更改
APP_NAME=项目名.jar
#启动方法
start(){
	pid=`ps -ef|grep $APP_NAME|grep -v grep|awk '{print $2}'`
      	if [ "$pid" ]; then
		echo "$APP_NAME is already running. pid=$pid ."
	else
		nohup java -jar $APP_NAME >> catalina.out 2>&1 &
		echo "$APP_NAME now is running"
	fi
}
#停止方法
stop(){
	pid=`ps -ef|grep $APP_NAME|grep -v grep|awk '{print $2}'`
	if [ "$pid" ]; then
		kill -9 $pid
		echo "Pid:$pid stopped"
	else
		echo "$APP_NAME is not running"
	fi
}
#输出运行状态
status(){
	pid=`ps -ef|grep $APP_NAME|grep -v grep|awk '{print $2}'`
	if [ "$pid" ]; then
		echo "$APP_NAME is running. Pid is ${pid}"
	else
		echo "$APP_NAME is NOT running."
	fi
}
#根据输入参数,选择执行对应方法,不输入则执行使用说明
case "$1" in
	start)
		start
		;;
	stop)
		stop
		;;
	status)
		status
		;;
	restart)
		stop
		sleep 5
		start
		;;
	*)
		echo "Usage:{start|stop|status|restart}"
		;;
esac
exit 0
11-15 02:20