根据进程名称获取进程id

# -*- conding:utf-8-*-

import subprocess

def getpid_windows(process_name):
    """利用cmd_str = tasklist|find /i "xdict.exe" 来查找windows平台的进程id"""
    cmd_line = 'tasklist|find /i "%s"' %process_name
    pp = subprocess.Popen(cmd_line,shell=True,stdout=subprocess.PIPE,stderr=subprocess.PIPE)
    out,err = pp.communicate()
    if pp.returncode != 0:
        print 'error:'+err
        return -1

    elif out.strip == '': # 这个情况是针对查询的进程没有启动的情况
        print 'error:find process does not srart'
        return -1
    else:
        out_str = out.strip()
        print     
        pid = out_str[30:34]
        return int(pid)

def getpid_linux(process_name):
    """利用 ps -ef|grep %s|grep -v grep|awk '{print $2}' 来查找linux 平台的进程id"""
    cmd_line = "ps -ef|grep %s|grep -v grep|awk '{print $2}'" %process_name
    pp = subprocess.Popen(cmd_line,shell=True,stdout=subprocess.PIPE,stderr=subprocess.PIPE)
    out,err = pp.communicate()
    if pp.returncode != 0:
        print 'error:'+err
        return -1
    elif out.strip() == "":
        print 'error:find process does not srart'
        return -1 
    else:
        pid = out.strip()
        return int(pid)


if __name__ == '__main__':
   
    name = 'XDict.exe'
    pid = getpid_windows(name)
    print pid

转载于:https://www.cnblogs.com/haibianxiaolu/p/3862559.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值