python判断linux进程状态_python linux 判断进程及子进程是否存在 - CSDN
精华内容
参与话题
  • python 判断linux进程,并杀死进程

    千次阅读 2018-05-22 09:49:07
    ''' @author: Jacobpc ''' import os import sys import subprocess def get_process_id(name): child = subprocess.Popen(["pgrep"...,name],stdout=subprocess.PIPE,shell=False) response = child.co....
    '''
    
    @author: Jacobpc
    '''
    import os
    import sys
    import subprocess
    
    def get_process_id(name):
        child = subprocess.Popen(["pgrep","-f",name],stdout=subprocess.PIPE,shell=False)
        response = child.communicate()[0]
        return response
    
    pid = get_process_id("python socialbanklog.py")
    print pid
    if not pid:
        print "no target pid to kill,please check"
        sys.exit(1)
      
    result=os.system("kill -9 "+pid)
    if result==0:
        print "execute kill success"
    else:
        sys.exit(1)
    

    展开全文
  • python查看进程是否运行

    万次阅读 2017-11-03 18:42:35
    啥也不说了,直接上代码:#要先打开web服务器才能发推送消息 ...#查看进程是否存在,linux系统中,使用ps -ef|grep twistd来查看进程运行情况,使用axu时会出现twistd进程查不到的情况 def isTwistdRun

    啥也不说了,直接上代码:

    #要先打开web服务器才能发推送消息

    #os.system("twistd -r kqueue web --class=pyapns.server.APNSServer --port=7077")

    #查看进程是否存在,linux系统中,使用ps -ef|grep twistd来查看进程运行情况,使用axu时会出现twistd进程查不到的情况

    def isTwistdRun():

        strtmp = os.popen("ps axu|grep twistd"

        print type(strtmp)

        cmdback = strtmp.read()

        p = str(cmdback).find('--class=pyapns.server.APNSServer')

        print p

        if not p == -1:

            print 'twistd is run'

            return True

        else:

            print 'twistd is not run'

            return False

            

    if not isTwistdRun():

        os.system("twistd -r kqueue web --class=pyapns.server.APNSServer --port=7077")

    因为要使用pyapns运行ios推送服务,就要打开twistd的web服务器才能给苹果的发消息。所以每一次要发推送消息的时候就要知道twistd有没有运行。使用上边的代码就可以在twistd没有运行时,自动运行。

    python执行系统命令--获取返回值

    最开始的时候用 Python 学会了 os.system() 这个方法是很多比如 C,Perl 相似的。

    os.system('cat /proc/cpuinfo')

    但是这样是无法获得到输出和返回值的,继续 Google,之后学会了 os.popen()。

    output = os.popen('cat /proc/cpuinfo')
    print output.read()

    通过 os.popen() 返回的是 file read 的对象,对其进行读取 read() 的操作可以看到执行的输出。但是怎么读取程序执行的返回值呢,当然咯继续请教伟大的 Google(联想到像我这样的人工作如果离开了 Google,不是成了废物。。。Baidu 忽视)。Google 给我指向了 commands — Utilities for running commands
    这样通过 commands.getstatusoutput() 一个方法就可以获得到返回值和输出,非常好用。

    (status, output) = commands.getstatusoutput('cat /proc/cpuinfo')
    print status, output

    Python Document 中给的一个例子,很清楚的给出了各方法的返回。

    >>> import commands

    >>> commands.getstatusoutput('ls /bin/ls')

    (0, '/bin/ls')
    >>> commands.getstatusoutput('cat /bin/junk')
    (256, 'cat: /bin/junk: No such file or directory')
    >>> commands.getstatusoutput('/bin/junk')
    (256, 'sh: /bin/junk: not found')
    >>> commands.getoutput('ls /bin/ls')
    '/bin/ls'
    >>> commands.getstatus('/bin/ls')
    '-rwxr-xr-x 1 root 13352 Oct 14 1994 /bin/ls'


    参考:http://blog.sina.com.cn/s/blog_5357c0af0100z4rn.html
    展开全文
  • python判断进程是否存在

    万次阅读 2020-04-13 15:24:02
    1. 进程名 import psutil def judgeprocess(processname): pl = psutil.pids() for pid in pl: if psutil.Process(pid).name() == processname: print(pid) break els...

    1. 进程名 

    import psutil
    
    def judgeprocess(processname):
        pl = psutil.pids()
        for pid in pl:
            if psutil.Process(pid).name() == processname:
                print(pid)
                break
        else:
            print("not found")
            
    if judgeprocess('notepad++.exe') == 0:
        print('success')
    else:
        pass
    
    
    
    上面代码网友提出有问题,暂时没验证,记录下修改后的
    # coding:utf-8
    import psutil
     
    # pl = psutil.pids()
    # for pid in pl:
    #     if psutil.Process(pid).name() == 'notepad++.exe':
    #         print(pid)
     
     
    def checkprocess(processname):
        pl = psutil.pids()
        for pid in pl:
            if psutil.Process(pid).name() == processname:
                return pid
     
    # print(isinstance(checkprocess("notepad++.exe"),int))
     
    if isinstance(checkprocess("notepad++.exe"),int):
        print("进程存在")
    else:
        print("进程不存在")

     

     2. 进程ID

    import errno
    import os
    import sys
    
    
    
    def pid_exists(pid):
        """Check whether pid exists in the current process table.
        UNIX only.
        """
        if pid < 0:
            return False
        if pid == 0:
            # According to "man 2 kill" PID 0 refers to every process
            # in the process group of the calling process.
            # On certain systems 0 is a valid PID but we have no way
            # to know that in a portable fashion.
            raise ValueError('invalid PID 0')
        try:
            os.kill(pid, 0)
        except OSError as err:
            if err.errno == errno.ESRCH:
                # ESRCH == No such process
                return False
            elif err.errno == errno.EPERM:
                # EPERM clearly means there's a process to deny access to
                return True
            else:
                # According to "man 2 kill" possible error values are
                # (EINVAL, EPERM, ESRCH)
                raise
        else:
            return True

     

    展开全文
  • 动态获取任意python脚本进程id (pid) pip install psutil # psutil这个包是第三方包需要自己安装 判断CPU状态 #!/usr/bin/python3 # 这次是监视单个进程所占CPU的资源百分比,上一个版本是判断整个树莓派CPU...

    首先要安装

    pip install psutil 
    # psutil这个包是第三方包需要自己安装
    

    判断CPU状态

    #!/usr/bin/python3
    # 这次是监视单个进程所占CPU的资源百分比,上一个版本是判断整个树莓派CPU占
    #用率,这个虽然能实现功能,但是存在风险,有些情况下不是我写的脚本所引起的
    #整个树莓派CPU占用率过高就,进行重启程序。
    
    
    import psutil as p
    import os
    import logging
    
    logging.basicConfig(level=logging.DEBUG,
                        filename='thread_cpu_log1.0.log',
                        filemode='a',
                        format=
                        '%(asctime)s - %(pathname)s[line:%(lineno)d] - %(levelname)s: %(message)s')
                        #filename='/home/pi/Desktop/thread_cpu_log1.0.log',是linux操作目录你可以写成当前目录下
    try:
        pid1 = os.popen( 'ps -ef | grep threading_modbus_16_005.py | grep -v "grep"') #获取整个进程的状态,在第一个grep 后输入的是你python脚本的名称
        pid2 = pid1.read()[11:14]  # 字符串截取获取当前进程的pid 也就是进程号
        # 接下来通过进程号获取 当前进程号 的状态
        pid_cpu = p.Process(int(pid2)).cpu_percent() #创建对象并获取占用CPU
    
        if pid_cpu > 100:
            logging.debug('重启一次')
            os.system('sudo reboot')
        else:
            logging.debug('正常')
    except:
        logging.debug("所查询进程进程没启动")
    
    # os模块的使用
    os.system()  #python环境执行linux命令 返回值 只有 0,1,2
    os.popen()  #管道的作用是有返回值得同 执行linux命令后得到的返回值相同, #是字符串类型,获取想要的变量需要切片
    
    展开全文
  • 查看当前正在运行的python进程

    千次阅读 2019-06-24 16:34:12
    ps -ef |grep Python kill -9 pid 转载于:https://www.cnblogs.com/zhangchenliang/p/8250391.html
  • Python——获取进程信息

    万次阅读 2015-11-13 14:16:20
    #/usr/bin/env python ...#进程检测程序 import psutil import types import datetime #获取用户输入的PID try:  PID = int(raw_input('Please input PID: ')) except Exception,e: #
  • Linux检测FTP服务并开启FTP服务

    万次阅读 2014-07-21 15:02:59
    Linux检测FTP服务并开启FTP服务   1. 检测FTP服务是否开启   通过查询提供FTP服务的进程是否存在 Shell代码 ps -ef | grep ftp   并未找到任何包含ftp关键字的进程信息,可判断服务...
  • python 判断一个进程是否存在

    千次阅读 2013-01-28 14:25:43
    #-*- coding:utf-8 -*-  def check_exsit(process_name):  import win32com.client  WMI = win32com.client.GetObject('winmgmts:'... processCodeCov = WMI.ExecQuery('select * from Win32_Process where Nam
  • 最近遇到进程卡死的情况,但是自己调试的过程中并不一定能复现,都是需要运行一段时间某些条件下才会触发,对于这种运行着不能破坏现场的情况,我们可以使用gdb -p和strace -p来跟踪。 首先我们用ps auxf查看我们的...
  • 本人在编写监控系统进程状态的脚本的时候,因为要涉及到调用系统命令查看linux系统进程pid以及时间等,所以使用到了os.popen().read()来获取返回值 然而调用命令发现无法获取到任何返回值,而直接在shell中执行实际...
  • python+windows监控电脑中的程序(进程)是否运行完成 实现功能: 1、监控windows电脑中的程序(进程)是否完成 2、当程序完成时发送邮件到指定邮箱 判断电脑中的程序是否还在运行: def isRunning(process_...
  • 监控进程 python程序汇总

    万次阅读 2010-07-29 01:32:00
    可以考虑写个 监控本机增加进程python程序  Python监视进程 关键字: python监视进程 <br />由subprocess创建一个进程,然后进行监视 每一秒钟查看一次,如果正在运行,打印pid和...
  • 根据pid判断某个进程是否存在

    千次阅读 2012-12-18 16:39:28
    #命令“ps -af”的第一列就是进程id #${pid}是进程的id,然后判断$?是否为0即可,为0表示跟进程存在 ps -ax | awk '{ print $1 }' | grep -e "^${pid}$"
  • 实例1: 点击(此处)折叠或打开 #!/usr/bin/env python import subprocess import datetime import re import sys
  • 在虚拟机中安装Linux中的CentOS7系统 https://baijiahao.baidu.com/s?id=1597320700700593557&wfr=spider&for=pc 因为安装的centos7的python版本为2.7我们要将他的版本升为3.5 安装依赖 shell> yum...
  • Linux如何查看Nginx是否启动

    万次阅读 2018-11-22 15:54:02
    介绍: Nginx是一个高性能的反向代理服务器,现在一般作为我们网站或其他Web服务的第一层代理,它负责监听80端口,用户通过浏览器发送的请求首先经过...Linux没运行一个程序就会产生一个进程,那么可以通过查看Ngi...
  • linux查询jar包运行情况

    千次阅读 2019-06-16 03:18:17
    2019独角兽企业重金招聘Python工程师标准>>> ...
  • 1、一开始按照网上教程,使用subprocess来实现另外一个脚本的运行和关闭,但是这个脚本在连续运行的时候不容易返回数据,判断脚本运行的状态 2、使用笨方法,用os.system运行脚本,使用os.kill(pid)杀死进程的方法...
  • linux如何查看nginx是否启动

    万次阅读 2018-06-11 10:40:09
    Nginx是一个高性能的反向代理服务器,现在一般作为我们网站或其他Web服务的第一层代理,用户...工具/原料LinuxNginx通过进程判断1第一种方法:查看进程列表并过滤Linux每个应用运行都会产生一个进程,那么我们就可以...
  • 解决Linux关闭终端(关闭SSH等)后运行的程序自动停止

    万次阅读 多人点赞 2016-10-10 15:00:20
    `我关闭这个SSH之后,该服务不可用,再次登入到服务器,已经没有这个python进程为此我写了一个测试程序来描述此问题///////////////////// // hello.c ///////////////////// #include #include <stdlib.h>#...
1 2 3 4 5 ... 20
收藏数 23,483
精华内容 9,393
关键字:

python判断linux进程状态