jenkins自动化部署项目8 -- 新建job(服务代码部署在linux上)
jenkins(windows) ----> 应用服务器(linux):
1。后台java服务:
与部署在windows上不同的是,这里我选择了在【构建后操作】中使用ssh向远程linux服务器传送jar包和需要执行的命令


sh /root/home/scripts/demo.sh
cp -r /home/soft/project/sr_f5_manage/sr_f5_manage-0.0.-SNAPSHOT.jar /home/soft/jarpackage
#每次构建都会有日志,为了不越来越多,每次运行项目之前会清空下这个文件nohup.out
cp /dev/null nohup.out
cd /home/soft/jarpackage
nohup java -jar sr_f5_manage-0.0.-SNAPSHOT.jar &
sleep 10
#此处之所以加上sleep 10 是因为一开始虽然构建成功,但是netstat -nlp | grep 8007查看进程发现找不到进程,因为项目启动需要时间,尝试着sleep发现就好了
BUILD_ID=dontKillMe:网上很多人说构建结束,服务进程会被kill,需要加上这个才行。我试了下,不要这个时进程也不会被kill
#这个就是上面的demo.sh脚本,根据项目端口查找进程,然后kill掉
port=$
if [ "${port}" == "" ];then
exit
fi
#根据端口号查询对应的pid,端口号在执行脚本时做为参数
pid=$(netstat -nlp | grep :$port | awk '{print $7}' | awk -F "/" '{ print $1 }'); #杀掉对应的进程,如果pid不存在,则不执行
if [ -n "$pid" ]; then
kill - $pid;
fi
ps:这样配置之后,构建还是会有问题,如图。jenkins不会正常结束构建,而是直到超时:

这时就需要在【高级】选项那里勾选上Exec in pty,这样就可以正常了。参考地址: https://blog.csdn.net/u013066244/article/details/52788407

2.前端:我们前端使用tomcat,和后端没什么不一样,只有配置的脚本不一样。如图,因为比较简单,就不单独贴出来了
图中第一行命令是关掉tomcat服务,如果tomcat本身没有运行则构建会报错,因此需要先判断下tomocat服务是否正在运行,我直接用上面的demo.sh脚本去代替这一步
sh /root/home/scripts/demo.sh

Source files的匹配规则可以了解下:
* matches zero or more characters, ? matches one character.

jenkins自动化部署项目8 -- 新建job(服务代码部署在linux上)的更多相关文章
- node.js服务端程序在Linux上持久运行
如果要想在服务端部署node.js程序,让其持久化运行,就不能单单使用npm start命令运行,当然了,这样运行是毫无问题的,但是当关闭xshell窗口或者是关闭进程的时候(其实关闭xshell窗口 ...
- jenkins发布普通项目、配置自动上线自动部署
1.以root用户运行jenkins是不专业的 刚开始用jenkins时用jenkins这个普通用户运行程序,始终无法连接到gitlab,报错如下: 先是把修改jenkins上的git路径,将git修 ...
- IntelliJ IDEA自动部署项目至远程服务器与传统部署项目至远程服务器的区别
每次开发Java项目时,对于所有Java开发人员来说,最枯燥的不是修改代码,而是实时将自己的代码上传至远程服务器,进行测试或者部署,本人最初开发也是这样,通过使用Xshell 5,WinSCP等工具对 ...
- 【转】jenkins自动化部署项目7 -- 新建job(将服务代码部署在windows上)
关于构建结束后jenkins会kill所有衍生子进程的官方解决方案:https://wiki.jenkins.io/display/JENKINS/Spawning+processes+from+bu ...
- jenkins自动化部署项目7 -- 新建job(将服务代码部署在windows上)
关于构建结束后jenkins会kill所有衍生子进程的官方解决方案:https://wiki.jenkins.io/display/JENKINS/Spawning+processes+from+bu ...
- 升级项目到.NET Core 2.0,在Linux上安装Docker,并成功部署
概述 容器,顾名思义是用来存放并容纳东西的器皿: 而容器技术伴着Docker的兴起也渐渐的映入大家的眼帘,它是一个抽象的概念,同时也是默默存在世上多年的技术,不仅能使应用程序间完全的隔离,而且还能在共 ...
- kubernetes实战篇之部署一个.net core微服务项目
目录 继上一篇kubernetes理论知识完结.本篇主要讲解基于nexus搭建一个docker镜像仓库(当然大家实践过程是不必完全跟着做,也可以搭建harbor仓库或者直接把镜像推送到docker h ...
- Docker安装Jenkins打包Maven项目为Docker镜像并运行【保姆级图文教学】
一.前言 Jenkins作为CI.CD的先驱者,虽然现在的风头没有Gitlab强了,但是还是老当益壮,很多中小公司还是使用比较广泛的.最近小编经历了一次Jenkins发包,感觉还不错,所以自己学习了一 ...
- Maven项目搭建(三):Maven直接部署项目
上一章给大家讲解了如何使用Maven搭建SSM框架项目. 这次给大家介绍一下怎么使用Maven直接部署项目. Maven直接部署项目 1.新建系统变量CATALINA_HOME,值为:Tom ...
随机推荐
- JS中 isNaN() 方法解析
1. isNaN() 存在的意义 由于 NaN 是唯一一个不等于自身的值,不像其他的值,可以用相等操作符来判断是否等于自身,NaN == NaN和NaN === NaN都会返回false,所以isNa ...
- 编程题及解题思路(1,String)
题目描述 请实现一个算法,确定一个字符串的所有字符是否全都不同.这里我们要求不允许使用额外的存储结构. 给定一个string iniString,请返回一个bool值,True代表所有字符全都不同,F ...
- LSTM 反向传播算法
1. https://www.cnblogs.com/pinard/p/6519110.html (详细原理!) 2. https://blog.csdn.net/abeldeng/article/d ...
- Docker安装Skywalking APM分布式追踪系统
环境介绍 本文使用虚拟机unbutu18+docker.本unbutu18系统IP地址为:192.168.150.134 大家在使用时记得将此地址换成自己的实际地址. docker的安装可参考:htt ...
- json-server的安装及使用
首先介绍一下什么是json-server,用处是什么,其实很简单:JSON-Server 是一个 Node 模块,运行 Express 服务器,你可以指定一个 json 文件作为 api 的数据源. ...
- Linux网络配置(10)
Linux网络配置原理图(NAT模式) 查看网络IP和网关: CentOS7:ip addr CentOS6:ifconfig Ping测试主机之间网络的连通性:ping [www.baidu.com ...
- POJ-3662 Telephone Lines 二分+双端队列
题目传送门 题意:有n个点, p条路,每条道路有个花费Li, 然后现在要建一条1-n的路线,然后可以选k条道路免费, 然后可以在剩下的道路中选择价格最高的边支付费用, 求这个答案最小. 题解: 二分答 ...
- UVA - 10480 Sabotage 最小割,输出割法
UVA - 10480 Sabotage 题意:现在有n个城市,m条路,现在要把整个图分成2部分,编号1,2的城市分成在一部分中,拆开每条路都需要花费,现在问达成目标的花费最少要隔开那几条路. 题解: ...
- CodeForces 474F Ant colony ST+二分
Ant colony 题解: 因为一个数是合法数,那么询问区间内的其他数都要是这个数的倍数,也就是这个区间内的gcd刚好是这个数. 对于这个区间的gcd来说,不能通过前后缀来算. 所以通过ST表来询问 ...
- zoj 3261 Connections in Galaxy War(并查集逆向加边)
题目链接:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=3261 题意:有很多颗星球,各自有武力值,星球间有一些联系通道,现 ...