标签:pid jar awk 端口 服务器 jenkins 80 war 搭建
构建后,建站问题
问题1 构建后应该做什么
在成功构建后,其实就生成了一个war包或者 jar包
但是
始终访问不了 8080 和8081 ,即使添加了安全组和防火墙设置!。
这时候思路是错的,虽然前辈和我说,端口打开了,如果访问不应该是拒绝,而是404。
理论上好像是这样,但是如果端口没有进程,在ecs上就是拒绝访问。
telnet 网址 8080(端口)
解决方向
- 确定打包方式
- 编写脚本
问题2 Spring Boot 打成war包的方法
war包打包
至此war 包部署完成?
但是我有一个问题,我发现好像本地项目测试的时候如果加了这一串代码十分不方便啊,因为也不能用内置tomcat了。
就是这样,在添加tomcat配置去配置。这样好麻烦啊。
但是这样我服务器上已经全部配置完了。
github连服务器,生成war。自动部署。
其中** url * 是 ip/war包名称/+requestmaping
怎么去war包 名称呢? 建议百度,我去jar包了,
因为jar包内嵌tomcat,配置url很方便…
好的,其实war包的url,ROOT是会隐藏的。所以你可以删除原来的ROOT,更名就行。
问题3 jar包怎么弄
但是! 生活继续。看jar怎么部署,毕竟很多公司主流都是这个。
但是我有另一个问题。因为我是个人服务器+个人项目。项目集成难道也用分块jar去实现?(目前还不懂)
问题3.1 误杀
netstat -lnp|grep 80
kill -9 端口
原来版本v 1.0
mvn clean
mvn package
BUILD_ID=DONTKILLME
port=80
#根据端口号查询对应的pid
pid=$(netstat -nlp | grep :$port | awk '{print $7}' | awk -F"/" '{ print $1 }');
#杀掉对应的进程,如果pid不存在,则不执行
if [ -n "$pid" ]; then
kill -9 $pid;
fi
java -jar /root/.jenkins/workspace/webdemo/target/demo-0.0.1-SNAPSHOT.jar
用脚本kill 80 端口时候会误杀8081 8080 (这边我把80端口给留下来给项目了,吧8081给了jenkins,好麻烦啊,不如直接改个什么3562之类的不相关的就好了。)
BUILD_ID=DONTKILLME
port=80
根据端口号查询对应的pid
pid=$(netstat -nlp | grep :$port | awk '{print $7}' | awk -F"/" '{ print $1 }');
杀掉对应的进程,如果pid不存在,则不执行
if [ -n "$pid" ]; then
kill -9 $pid;
fi
于是我找到了lsof 指令 lsof -i:80
效果如下
效果不错,比上面好多了,上面那个是aliyundun ,只要筛选就可以了
lsof -i:80|grep java
问题又来了
如果我用 -t 参数直接输出端口很好用啊,但是会把aliyundun 包含一起杀死
当然也有解决方法,用awk去提取 lsof -i:80|grep java 这个就行了。
但是我偷懒了….
lsof -t -i:80|sed -n '2,2p'
效果还行,但是我不保证 aliyundun pid每一次都比java小,我不懂pid机制,下次有问题再说吧
v2.0
mvn clean
mvn package
port=80
#根据端口号查询对应的pid
#pid=$(netstat -nlp | grep :$port | awk '{print $7}' | awk -F"/" '{ print $1 }');
pid=$(lsof -t -i:80|sed -n '2,2p');
#杀掉对应的进程,如果pid不存在,则不执行
if [ -n "$pid" ]; then
kill -9 $pid;
fi
java -jar /root/.jenkins/workspace/webdemo/target/demo-0.0.1-SNAPSHOT.jar
由于项目比较简单,轻喷
做到这里就是自动构建。每次上传github需要手动构建。
还有可以添加的是 构建后的脚本 发邮箱。
有兴趣的大家加油!!!
我累了,哪天有这么刚需需要github自动构建我再加吧……
标签:pid,jar,awk,端口,服务器,jenkins,80,war,搭建 来源: https://www.cnblogs.com/EsMussSeinHui/p/11184748.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。