美文网首页
python 获取进程的pid

python 获取进程的pid

作者: 逍遥_yjz | 来源:发表于2021-12-16 19:58 被阅读0次

    方法一:
    使用subprocess 的check_output函数执行pidof命令

    from subprocess import check_output
    def get_pid(name):
        return list(map(int,check_output(["pidof",name]).split()))
    
    if __name__ == '__main__':
    
        print(get_pid('python'))
    
    

    方法二:

    使用pgrep命令,pgrep获取的结果与pidof获得的结果稍有不同.pgrep的进程id稍多几个.pgrep命令可以使适用subprocess的check_out函数执行

    
    import subprocess
    
    def get_process_id(name):
        child = subprocess.Popen(['pgrep', '-f', name], stdout=subprocess.PIPE, shell=False)
        response = child.communicate()[0]
        return [int(pid) for pid in response.split()]
    
    # 启动命令和参数,空格
    

    方法三:
    获取当前脚本的pid进程

    import os
    os.getpid()
    

    方法四:命令获取+kill PID

    ps -ef | grep firefox | grep -v grep | cut -c 9-15 | xargs kill -s 9
    

    说明:

    • grep firefox的输出结果是,所有含有关键字“firefox”的进程。
    • grep -v grep是在列出的进程中去除含有关键字“grep”的进程。
    • cut -c 9-15是截取输入行的第9个字符到第15个字符,而这正好是进程号PID。
    • xargs kill -s 9中的xargs命令是用来把前面命令的输出结果(PID)作为“kill -s 9”命令的参数,并执行该命令。“kill -s 9”会强行杀掉指定进程。

    注意:linux的进程号最大是是 32768 (32 位系统)和 2 的 22 次方(400w 左右)(64 位系统)。cut -c 9-15不够,改成awk '{print $2}'

    相关文章

      网友评论

          本文标题:python 获取进程的pid

          本文链接:https://www.haomeiwen.com/subject/cfnvfrtx.html