python使用標(biāo)準(zhǔn)庫根據(jù)進(jìn)程名如何獲取進(jìn)程的pid詳解
前言
標(biāo)準(zhǔn)庫是Python的一個組成部分。這些標(biāo)準(zhǔn)庫是Python為你準(zhǔn)備好的利器,可以讓編程事半功倍。特別是有時候需要獲取進(jìn)程的pid,但又無法使用第三方庫的時候。下面話不多說了,來一起看看詳細(xì)的介紹吧。
方法適用linux平臺.
方法1
使用subprocess 的check_output函數(shù)執(zhí)行pidof命令
from subprocess import check_output def get_pid(name): return map(int,check_output(["pidof",name]).split()) In [21]: get_pid("chrome") Out[21]: [27698, 27678, 27665, 27649, 27540, 27530,]
方法2
使用pgrep命令,pgrep獲取的結(jié)果與pidof獲得的結(jié)果稍有不同.pgrep的進(jìn)程id稍多幾個.pgrep命令可以使適用subprocess的check_out函數(shù)執(zhí)行
import subprocess<br data-filtered="filtered">def get_process_id(name): """Return process ids found by (partial) name or regex. >>> get_process_id('kthreadd') [2] >>> get_process_id('watchdog') [10, 11, 16, 21, 26, 31, 36, 41, 46, 51, 56, 61] # ymmv >>> get_process_id('non-existent process') [] """ 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目錄下的文件即可獲取到進(jìn)程信息.
#!/usr/bin/env python import os import sys for dirname in os.listdir('/proc'): if dirname == 'curproc': continue try: with open('/proc/{}/cmdline'.format(dirname), mode='rb') as fd: content = fd.read().decode().split('\x00') except Exception: continue for i in sys.argv[1:]: if i in content[0]: print('{0:<12} : {1}'.format(dirname, ' '.join(content)))<br data-filtered="filtered"><br data-filtered="filtered">
phoemur ~/python $ ./pgrep.py bash 1487 : -bash 1779 : /bin/bash
4,獲取當(dāng)前腳本的pid進(jìn)程
import os os.getpid()
總結(jié)
以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,如果有疑問大家可以留言交流,謝謝大家對腳本之家的支持。
相關(guān)文章
python GUI庫圖形界面開發(fā)之PyQt5信號與槽基礎(chǔ)使用方法與實例
這篇文章主要介紹了python GUI庫圖形界面開發(fā)之PyQt5信號與槽基礎(chǔ)使用方法與實例,需要的朋友可以參考下2020-03-03python+selenium實現(xiàn)163郵箱自動登陸的方法
本篇文章主要介紹了python+selenium實現(xiàn)163郵箱自動登陸的方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-12-12使用Pytorch+PyG實現(xiàn)MLP的詳細(xì)過程
圖神經(jīng)網(wǎng)絡(luò)是最近 AI 領(lǐng)域最熱門的方向之一,下面這篇文章主要給大家介紹了關(guān)于使用Pytorch+PyG實現(xiàn)MLP的詳細(xì)過程,文中通過實例代碼介紹的非常詳細(xì),需要的朋友可以參考下2023-03-03簡單快捷:NumPy入門教程的環(huán)境設(shè)置
NumPy是Python語言的一個擴(kuò)展程序庫,支持高階大量的維度數(shù)組與矩陣運算,此外也針對數(shù)組運算提供大量的數(shù)學(xué)函數(shù)庫,本教程是為那些想了解NumPy的基礎(chǔ)知識和各種功能的人準(zhǔn)備的,它對算法開發(fā)人員特別有用,需要的朋友可以參考下2023-10-10Python3導(dǎo)入CSV文件的實例(跟Python2有些許的不同)
今天小編就為大家分享一篇Python3導(dǎo)入CSV文件的實例(跟Python2有些許的不同),具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-06-06python實現(xiàn)在遍歷列表時,直接對dict元素增加字段的方法
今天小編就為大家分享一篇python實現(xiàn)在遍歷列表時,直接對dict元素增加字段的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-01-01python相對包導(dǎo)入報“Attempted?relative?import?in?non-package”錯誤
這篇文章主要介紹了python相對包導(dǎo)入報“Attempted?relative?import?in?non-package”錯誤,本文要在原理上解決?python當(dāng)中相對包導(dǎo)入出現(xiàn)的問題,需要的朋友可以參考下2023-02-02