本文主要是介绍ps aux | grep test | grep -v grep,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
import subprocessCHECK_SCRIPT = "test.py"# 过滤 master_ip
waf_ip_list = filter(lambda x: x!= master_ip, set(waf_ips.split(',')))
waf_ips = ",".join(waf_ip_list)# 检查进程CHECK_SCRIPT是否在运行
p = Popen("ps aux | grep {} | grep -v grep".format(CHECK_SCRIPT), stdout=PIPE,shell=True)
output_p = p.stdout.readlines()
if output_p:return JsonResponse({'code': 0, 'msg': '脚本正在运行,请稍后再试'})
else:cmd = 'python {}'.format(CHECK_SCRIPT)res = subprocess.Popen(cmd, shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE)err = res.stderr.read()if error:cmd_res = errelse:cmd_res = res.stdout.read()return JsonResponse({'code': 0, 'msg': cmd_res)
知识点
-
灵活使用高阶函数
filter()
,lambda()
,map()
,reduce()
等 -
ps aux | grep test.py | grep -v grep
grep
:查找含有指定字段的行
grep -v
:反向查找,查找不含有指定字段的行在这里,我想查看
test.py
是否在运行,使用grep
命令进行过滤查找,而grep
本身也是一个进程,所以需要把grep
自身的进程过滤掉例如:
cat test.log | grep "login"|grep -v "deviceType"
找出
test.log
中包含login
信息的,且没有deviceType
这个字段的 -
利用管道机制
subprocess.PIPE
实现非阻塞模式
这篇关于ps aux | grep test | grep -v grep的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!