linux 查看python进程,检查进程是否在Linux上使用Python运行

I am trying to find if the process is running based on process id. The code is as follows based on one of the post on the forum. I cannot consider process name as there are more than one process running with the same name.

def findProcess( processId ):

ps= subprocess.Popen("ps -ef | grep "+processId, shell=True, stdout=subprocess.PIPE)

output = ps.stdout.read()

ps.stdout.close()

ps.wait()

return output

def isProcessRunning( processId):

output = findProcess( processId )

if re.search(processId, output) is None:

return true

else:

return False

Output :

1111 72312 72311 0 0:00.00 ttys000 0:00.00 /bin/sh -c ps -ef | grep 71676

1111 72314 72312 0 0:00.00 ttys000 0:00.00 grep 71676

It always return true as it can find the process id in the output string.

Any suggestions? Thanks for any help.

解决方案

Try:

os.kill(pid, 0)

Should succeed (and do nothing) if the process exists, or throw an exception (that you can catch) if the process doesn't exist.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值