python|Jenkins部署grpc服务并重启

背景 【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 #通过一系列命令杀了

    推荐阅读