如何检查进程在python中运行(在linux中)?
我想如果这个过程是基于进程名(test.py)上运行的检查,然后退出如何检查进程在python中运行(在linux中)?
l = commands.getstatusoutput("ps aux |grep 'python2.7'| grep
'test.py' | grep -v 'grep' | wc -l")
if int(l[1]) == 1:
pid = commands.getstatusoutput("ps -ef |grep 'python2.7'| grep 'test.py ' |awk '{print $2}'")
print "the process 'test.py ' have running ,the pid is :"+str(pid[1])
sys.exit(0)
else:
print "not running"
输出:
[email protected]:/test$ python2.7 test.py
the process 'test.py ' have running ,the pid is :26517
26542
然后我尝试检查
$ ps aux | grep agg_test
georgetovrea 25181 0.0 0.0 10944 932 pts/9 S+ 23:26 0:00 grep --color=auto test
进程没有运行,我想检查进程(test.py)是否有运行,然后退出, 但它总是打印正在运行的进程,
如何检查进程是否正在运行?有什么建议么?谢谢你的帮助。
该程序运行良好。 我想你正在运行程序python
而不是python2.7
具体。
(a)在您的grep语句中尝试使用python
而不是python2.7
,那么罪魁祸首确实是您对python的使用。
(二)改回为python2.7
,并用全路径运行您的程序python2.7
程序:
import commands
import sys
l = commands.getstatusoutput("ps aux |grep 'python2.7'| grep 'test.py' | grep -v 'grep' | wc -l")
print(l)
if int(l[1]) == 1:
pid = commands.getstatusoutput("ps -ef |grep 'python2.7'| grep 'test.py ' |awk '{print $2}'")
print "the process 'test.py ' have running ,the pid is :"+str(pid[1])
sys.exit(0)
else:
print "not running"
输出:
[email protected]:/tmp$ /usr/bin/python2.7 test.py
(0, '1')
the process 'test.py ' have running ,the pid is :15620
DhruvPathak,我正在运行python2.7程序,该进程没有运行,但运行程序来检查并获取消息“get the process'test.py'have running,the pid is:28373,” – georgetovrea
什么是你的python文件的名字? – DhruvPathak
是命令你”从Python内部重新运行报告任何不同,如果你只是在shell中运行该命令? –
尼克,当运行test.py时,输出是“进程'test.py'正在运行,pid是:26517 26542” – georgetovrea
[this]的可能重复(https://stackoverflow.com/questions/568271 /如何做检查,IF-有-存在-A-工艺上带有一个赋予-PID功能于蟒蛇)。 – IsaacS