背景 【python|Jenkins部署grpc服务并重启】目前我在使用jenkins做自动化测试工作,目前有个grpc服务,需要配置不同的参数后,启动服务再测试不同结果。用shell方式配置在自动化脚本当中,遇到了几个问题,在这里总结一下
1、启动python 的virtualenv环境 平常启动virtualenv中的python环境,我们都是用如下语句执行:
source ./pipeline_env/bin/activate#无法在sh脚本中执行
取而代之的是使用点代替source:
. ./pipeline_env/bin/activate#可以在sh脚本中执行
2、启动grpc服务后进行下一步 由于grpc服务启动后,就输入一些信息后,停在那里了,无法执行下一步。所以我想到的替代方法就是把他转到后台执行,这样就可以执行下一步了。
nohup python start_grpc_server.py> my.log 2>&1 &
sleep 15#为启动服务留下15s时间
3、如何重启后台运行的grpc服务 但是如果下一次配置新参数后,怎么把这个后台进程杀了,重启新的grpc服务,搜索后发现两种方法。
第一种,使用cat方法记录:
nohup python start_grpc_server.py> my.log 2>&1 &
echo $! > save_pid.txt #把pid记录在文档中
kill -9 `cat save_pid.txt`
rm save_pid.txt
第二种会简单一些:
ps -ef|grep start_grpc_server.py|grep -v grep|cut -c 9-15|xargs kill -9 #通过一系列命令杀了
推荐阅读
- 推荐系统论文进阶|CTR预估 论文精读(十一)--Deep Interest Evolution Network(DIEN)
- Python专栏|数据分析的常规流程
- Python|Win10下 Python开发环境搭建(PyCharm + Anaconda) && 环境变量配置 && 常用工具安装配置
- Python绘制小红花
- Pytorch学习|sklearn-SVM 模型保存、交叉验证与网格搜索
- OpenCV|OpenCV-Python实战(18)——深度学习简介与入门示例
- python|8. 文件系统——文件的删除、移动、复制过程以及链接文件
- 爬虫|若想拿下爬虫大单,怎能不会逆向爬虫,价值过万的逆向爬虫教程限时分享
- 分布式|《Python3网络爬虫开发实战(第二版)》内容介绍
- java|微软认真聆听了开源 .NET 开发社区的炮轰( 通过CLI 支持 Hot Reload 功能)