应用场景

在进行 Linux 运维的环境中,我们经常会遇到维护同一台服务器上的多个程序,涉及到程序的启动、关闭和重启操作。

通常这些程序之间存在着相互依存的关系需要进行依次的启动关闭操作。

下面介绍几种通过进程名获取进程PID的方法:

方法一:

使用 subprocess 的 check_output 函数执行pidof命令

from subprocess import check_output
def get_pid(name):return map(int,check_output(["pidof",name]).split())

方法2:

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

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()]

方法3:

直接读取/proc目录下的文件,这个方法不需要启动一个shell,只需读取/proc目录下的文件接口获取到进程信息。

#!/usr/bin/env pythonimport os
import sysfor dirname in os.listdir('/proc'):if dirname == 'curproc':continuetry:with open('/proc/{}/cmdline'.format(dirname), mode='rb') as fd:content = fd.read().decode().split('\x00')except Exception:continuefor i in sys.argv[1:]:if i in content[0]:print('{0:<12} : {1}'.format(dirname, ' '.join(content)))

方法4:

获取当前脚本的进程pid

import osos.getpid()

转载于:https://www.cnblogs.com/alfred0311/p/7988055.html

Python 使用标准库根据进程名获取进程PID相关推荐

  1. python调用命令行获取pid_python 使用标准库根据进程名获取进程的pid

    有时候需要获取进程的pid,但又无法使用第三方库的时候. 方法适用linux平台. 方法1 使用subprocess 的check_output函数执行pidof命令 from subprocess ...

  2. Python 技术篇-通过进程名获取进程pid实例演示,使用psutil库获取进程id

    psutil.process_iter() 方法可以返回进程列表信息,再通过匹配名称,获取进程的 pid 即可. import psutildef get_pid(name):'''作用:根据进程名获 ...

  3. linux c语言中如何通过进程名获取进程PID(awk命令行指令)popen、pclose

    文章目录 不唯一匹配(包含字符的全都匹配上)(而且进程名最多为15个字符?)(前15个字符?) 方法1:嵌到程序里,通过命令行附带要查找的进程名称(交叉编译在arm摄像头里运行) 方法2:通过搜素/p ...

  4. 【博学谷学习记录】超强总结,用心分享 | 人工智能编程语言Python常用标准库(上)

    Python常用标准库 上 sys库 time库 random库 math库 os库 shutil库 Python语言的急速发展很大程度上得益于其开放共享的特点和良好的社区支持和计算生态,拥有超过十几 ...

  5. python 使用标准库连接linux实现scp和执行命令

    import stat import pexpect 只显示关键代码: sqldb = localpath+database //获取database名字 if os.path.exists(sqld ...

  6. Python使用标准库zipfile+re提取docx文档中超链接文本和链接地址

    推荐教材: <Python程序设计实用教程>,ISBN:978-7-5635-6065-3,董付国,北京邮电大学出版社 教材封面: 全国各地新华书店有售 京东购买链接: 配套资源:教学大纲 ...

  7. python之标准库html

    python之标准库html html库是用于解析HTML的一个工具,是python自带的标准库之一. html库位置: __init__.py文件提供两个函数: __all__ = ['escape ...

  8. python 3标准库道格_《PYTHON 3标准库 [美] 道格·赫尔曼》[美] 道格·赫尔曼(Doug Hellmann)著【摘要 书评 在线阅读】-苏宁易购图书...

    商品参数 作者: [美] 道格·赫尔曼(Doug Hellmann)著 出版社:机械工业出版社 出版时间:. 版次:. 印次:. 印刷时间:. 页数:. 开本:. ISBN:9787111608950 ...

  9. python 常用标准库

    python 常用标准库 1.文本 string:通用字符串操作 re:正则表达式操作 difflib:差异计算工具 textwrap:文本填充 unicodedata:Unicode字符数据库 st ...

  10. python 的标准库模块glob使用教程,主要为glob.glob()使用与glob.iglob()使用

    欢迎大家关注笔者,你的关注是我持续更博的最大动力 原创文章,转载告知,盗版必究 python 的标准库模块glob使用教程,主要为glob.glob函数使用与glob.iglob函数使用 文章目录: ...

最新文章

  1. 首长,Redis性能优化十三条军规立好了,请过目~
  2. zip压缩与解压缩示例
  3. 二分类最优阈值确定_机器学习 | 详解GBDT在分类场景中的应用原理与公式推导...
  4. 数据可视化的基本原理——视觉通道
  5. 数据类型的判断 c# 1614092544
  6. pytorch---nn模块(3)自定义nn 模块
  7. inttypes.h源码,VS编译需要
  8. [Linux_Ubuntu13] 声音很小前台无法调节的处理方法
  9. C 语言中获取文件长度(ftell函数)
  10. Docker服务以及容器如何设置自动启动
  11. 三种形式全排列——指数型、排列型、组合型类型题目汇总
  12. tplink服务器无响应dns,tplink路由器自动获取ip设置后dns异常
  13. php中合并图片并添加水印,php通过imagecopymerge 函数给图片制作水印
  14. C#WinForm程序 窗口不在任务栏显示的处理方法
  15. Tapestry3.0开发概论
  16. 我是如何降低项目的沟通成本?
  17. 关于np.random.choice
  18. 读书笔记感想:清教徒的脚踪
  19. nvme分区选mbr还是guid_固态硬盘安装win10系统,关于分区的这些注意事项你都知道吗?...
  20. 仿12306官网(附源码)

热门文章

  1. android studio开启multiDexEnabled后依然出现超出方法数的问题
  2. 初识iptables规则
  3. 运动社交或将成为“反科技”先锋
  4. iOS 常见的JS与iOS交互的需求与解决方案
  5. android 获取屏幕宽高
  6. 操蛋!新来的同事竟然不会在javaee项目中使用WebSocket~
  7. 开发经理是否应该写代码?​
  8. 28岁程序员期权过亿,彪悍从字节退休,网友:酸了酸了!
  9. 从 0 编写自己的第一款 IDEA 插件!
  10. [经典]技术面试宝典: 很全面的算法和数据结构知识(含代码)