jenkins启动脚本,jar包自动化启动脚本

发布于:2024-12-20 ⋅ 阅读:(17) ⋅ 点赞:(0)

//启动jenkins.war

#!/bin/bash
 
## war包名称
JAR_NAME="jenkins.war"
 
## 查找是否有运行的jenkins.war 返回pid
pid=`ps -ef | grep $JAR_NAME | grep -v grep | awk '{print $2}'`
 
## 输出的日志位置 如果报文件不存在,就在jenkins目录下touch nohup.out,就ok了
LOG_PATH=/www/server/jenkins/nohup.out
 
## 如果pid不存在,说明没有正在运行的jenkins.war,直接启动
if [ -z $pid ]; then
        ## 台运行 jenkins.war --httpPort指定端口8080 ,如果端口被占用了,可指定其他端口
        ## 因为我使用了nginx代理端口,所以使用 --prefix 指定了请求前缀为/jenkins 这个需要在nginx中配置相同前缀/jenkins,就可以外网访问jenkins了
        ## 如果没有使用反向代理,就不需要添加 --prefix="/jenkins" 这一截
    nohup java -jar $JAR_NAME --httpPort=8080 --prefix="/jenkins"  > $LOG_PATH 2>&1 &
    ## 查看启动后的pid
    pid=`ps -ef | grep $JAR_NAME | grep -v grep | awk '{print $2}'`
    echo "Service ${JAR_NAME} is started!pid=${pid}"
    ## 动态查看启动日志
    tail -f ${LOG_PATH}
## 如果pid存在,说明有正在运行的jenkins.war,需要先杀掉这个进程,再重新启动jenkins.war
else
        ## 杀掉已有进程
    kill -9 $pid
    ## 重新运行jenkins.war
    nohup java -jar $JAR_NAME --httpPort=8080 --prefix="/jenkins"  > $LOG_PATH 2>&1 &
    echo "Service ${JAR_NAME} is restarted!pid=${pid}"
    tail -f ${LOG_PATH}
fi
 

//目的把jenkins工作目录中打包好的jar包复制到自己的项目路径下并且启动服务

#!/bin/bash

#//解决jar执行不了的bug
source /etc/profile 

#服务名称
SERVER_NAME=manage-admin


# 源jar路径,mvn打包完成之后,target目录下的jar包名称,也可选择成为war包,war包可移动到Tomcat的webapps目录下运行,这里使用jar包,用java -jar 命令执行  
JAR_NAME=manage-admin


# 源jar路径  
#/usr/local/jenkins_home/workspace--->jenkins 工作目录


#demo 项目目录

#target 打包生成jar包的目录
JAR_PATH=/root/.jenkins/workspace/便便小程序-manage/default/manage-admin/target


# 打包完成之后,把jar包移动到运行jar包的目录--->work_daemon,work_daemon这个目录需要自己提前创建
JAR_WORK_PATH=/www/project


# 打包完成之后,把jar包移动到运行jar包的目录--->work_daemon,work_daemon这个目录需要自己提前创建
PID=`ps -ef | grep "$SERVER_NAME" | awk '{print $2}'`


#判断

if [ $PID -le 0 ];then
	
   echo "有进程,结束。"
   
   
   #结束
   
   kill -9 $id  
   
   
   
  #复制jar包到执行目录
  echo "没有进程 ,复制jar包到执行目录:cp $JAR_PATH/$JAR_NAME.jar $JAR_WORK_PATH"
  cp $JAR_PATH/$JAR_NAME.jar $JAR_WORK_PATH
  echo "复制jar包完成"
  cd $JAR_WORK_PATH
  #修改文件权限
  chmod 755 $JAR_NAME.jar
  
  java -jar $JAR_NAME.jar
  
  
else
	
  #复制jar包到执行目录
  echo "没有进程 ,复制jar包到执行目录:cp $JAR_PATH/$JAR_NAME.jar $JAR_WORK_PATH"
  cp $JAR_PATH/$JAR_NAME.jar $JAR_WORK_PATH
  echo "复制jar包完成"
  cd $JAR_WORK_PATH
  #修改文件权限
  chmod 755 $JAR_NAME.jar
  
  nohup java -jar $JAR_NAME.jar > admin.txt &
  echo "nohup ${JAR_NAME} start success"
  
fi