python获取进程pid并且杀掉进程

python程序退出方式

  • sys.exit()
    执行该语句会直接退出程序,这也是经常使用的方法,也不需要考虑平台等因素的影响,一般是退出Python程序的首选方法。
    该方法中包含一个参数status,默认为0,表示正常退出,也可以为1,表示异常退出。
import sys
sys.exit()
sys.exit(0)
sys.exit(1)
  • os._exit()
    效果也是直接退出,不会抛出异常,但是其使用会受到平台的限制,但我们常用的Win32平台和基于UNIX的平台不会有所影响。

  • os.kill()
    一般用于直接Kill掉进程,但是只能在UNIX平台上有效。

  • Windows下Kill进程
    既然在Linux下能够进行上述操作,那么Windows下也能够有相关的操作。
    这里使用的是os.popen(), 该方法是用于直接执行系统命令,而在Windows下其实就是使用taskkill来kill掉进程,其基本形式是,
    taskkill /pid 程序的PID号码

import os
if __name__ == "__main__":
    pid = 620
    os.popen('taskkill.exe /pid:'+str(pid))

这里我们采取第四种方式,获取进程的pid,然后执行cmd命令

def getChildrenPidsOfPid():
    """Returns the children pids of a pid"""
    newpidcnt = 0
    pid = 0
    wmi = win32com.client.GetObject('winmgmts:')
    for win32_process_instance in wmi.InstancesOf('win32_process'):
            if win32_process_instance.Name and win32_process_instance.Name.upper() == "HuaYang.exe".upper():
                pTime = win32_process_instance.Properties_('CreationDate').Value
                processId = int(win32_process_instance.Properties_('ProcessId'))
                if pTime > 5:
                    newpidcnt = newpidcnt + 1
                    pid = processId
    if newpidcnt > 2:
        raise RuntimeError("error")
    print pid
    return pid

def kill(pid):
    try:
        # command = 'taskkill /F /IM %d' %pid
        # print type(command)
        # os.system(command) #1111
        import subprocess  
        subprocess.Popen("cmd.exe /k taskkill /F /T /PID %i"%pid , shell=True)  
    except OSError, e:
        print 'no process'

执行111处时,会出现提示Decode error - output not utf-8
具体原因:

python在编译运行源码后,默认将输出结果以cp936编码,发送给Sublime Text。而Sublime Text 中python build的默认接收编码是UTF-8。Sublime Text在接收到python输出后,试图以utf-8解码cp936编码的流。当cp936编码的流中没有汉字时,因为英文字符集在cp936和utf-8中的编码兼容,所以用utf-8解码不会出错;当cp936编码的流中有汉字时,因为汉字字符集在cp936与utf-8的编码不兼容,所以用utf-8解码就会错误。最终Sublime Text就会报[Decode error - output not utf-8]错误。

解决方法:

方法1. Python有个PythonIoEncoding环境变量,用来定义stdin/stdout/stderr的编码。windows下,cmd中执行python -h 可以看到该环境变量的说明。所以可以在环境变量下,添加一个环境变量pythonioencoding,值为utf-8,即可解决该问题。
方法2.修改Sublime Text的python build的设置。将其编码设置为cp936。
1.先找到Python.sublime-build文件,Preferences->Browse Packages,打开目录

打开目录

2.进入对应语言目录,找到*.sublime-build文件,并按截图添加语句

添加cp936

sublime执行cmd命令时,经常会碰到 不是内部

Paste_Image.png

后来换一个IDE就可以,估计是sublime这里对cmd命令的权限有点问题。如果哪位知道怎么回事,可以联系我怎么回事。

  • 查询windows的pid 并且杀掉进程
    查看占用指定端口的程序 **
    netstat –ano|findstr “指定端口号”
    如:
    查询占用了8080端口的进程:netstat -ano|findstr "8080"**
    使用命令杀死进程1>首先找到进程号对应的进程名称tasklist|findstr 进程号如:tasklist|findstr 3112
    然后根据进程名称杀死进程taskkill /f /t /im 进程名称如:taskkill /f /t /im /javaw.exe

执行系统命令的几种方式:

  • os.system()
    import os
    cmd = 'ipconfig'
    os.system(cmd)

  • class subprocess.Popen
    import subprocess
    subprocess.Popen(command, shell=True)
    如果command不是一个可执行文件,shell=True不可省。

  • 打开网页
    import webbrowser
    webbrowser.open('http://www.google.com')

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 211,948评论 6 492
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,371评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 157,490评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,521评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,627评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,842评论 1 290
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,997评论 3 408
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,741评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,203评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,534评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,673评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,339评论 4 330
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,955评论 3 313
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,770评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,000评论 1 266
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,394评论 2 360
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,562评论 2 349

推荐阅读更多精彩内容

  • 字符集和编码简介 在编程中常常可以见到各种字符集和编码,包括ASCII,MBCS,Unicode等字符集。确切的说...
    兰山小亭阅读 8,464评论 0 13
  • 个人学习批处理的初衷来源于实际工作;在某个迭代版本有个BS(安卓手游模拟器)大需求,从而在测试过程中就重复涉及到...
    Luckykailiu阅读 4,702评论 0 11
  • 本节内容 Python介绍 发展史 Python 2 or 3? 安装 Hello World程序 变量 用户输入...
    小小不懂11阅读 3,411评论 2 30
  • 几个基本概念 bit二进制位, 是计算机内部数据储存的最小单位,11010100是一个8位二进制数。一个二进制位只...
    西电大侠阅读 3,562评论 1 8
  • 常用 提高python编码效率 赋值 列表推导式 列表解析表达式,类似[i*2 for i in list] 三元...
    今夕何夕_walker阅读 737评论 0 1