1、创建文件夹,将项目jar文件丢入服务器中
mkdir -m 755 test
-m:类似chmod 给文件夹权限
2、一般开发环境和部署环境配置不一致,在有外置配置及内置配置时,JAR优先使用外置配置文件,即将外置配置文件修改好之后,与jar文件同一目录即可
3、编写bash文件
#!/bin/bash
# 需要配置环境变量后才能直接使用java这些变量(Ubuntu使用apt安装在如下位置,其它位置进行相应替换)
export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64#这里可替换为你自己的执行程序,其他代码无需更改
APP_HOME=/temp/zhtj
APP_NAME=tianheng-web-app-2.0.0.jar#使用说明,用来提示输入参数
usage() {
echo "Usage: sh deploy.sh [start|stop|restart|status]"
exit 1
}#检查程序是否在运行
is_exist(){
pid=`ps -ef|grep $APP_NAME|grep -v grep|awk '{print $2}'`
#如果不存在返回1,存在返回0
if [ -z "${pid}" ]; then
return 1
else
return 0
fi
}#启动方法
start(){
is_exist
if [ $? -eq 0 ]; then
echo "$APP_NAME is already running. pid=${pid}"
else
cd $APP_HOME
nohup java -jar $APP_NAME > zhtj.log 2>&1 &
fi
}#停止方法
stop(){
is_exist
if [ $? -eq "0" ]; then
kill -9 $pid
else
echo "$APP_NAME is not running"
fi
}#输出运行状态
status(){
is_exist
if [ $? -eq "0" ]; then
echo "$APP_NAME is running. Pid is ${pid}"
else
echo "$APP_NAME is NOT running."
fi
}#重启
restart(){
stop
sleep 5
start
}#根据输入参数,选择执行对应方法,不输入则执行使用说明
case "$1" in
"start")
start
;;
"stop")
stop
;;
"status")
status
;;
"restart")
restart
;;
*)
usage
;;
esac
注意1:从windows拷贝到linux系统下,sh文件需要给权限,命令如下
chmod 755 zhtj.sh
注意2:windows编写的sh文件直接在linux执行会报错:-bash 错误的解释器:没有那个文件或目录
需要在linux下执行以下命令:zhtj.sh为文件
sed -i 's/\r$//' zhtj.sh
注意3:如果APP_NAME为实际路径,如下:
APP_NAME=/temp/zhtj/tianheng-web-app-2.0.0.jar
在执行 ps -ef|grep $APP_NAME|grep -v grep|awk '{print $2}' 命令时找不到PID
修改如下即可识别到PID
APP_NAME=tianheng-web-app-2.0.0.jar