如何使用自定义名称运行进程?

2024-10-16 17:29:00 发布

您现在位置:Python中文网/ 问答频道 /正文

有没有什么方法可以运行一个自定义名称的进程,比如标记它?因此,如果我想终止进程,很容易找到具有特定名称或标签的进程。你知道吗

以下是我的代码,用于查找给定名称的任何进程:

def findProcessIdByName(processName):
    '''
    findProcessIdByName('python')
    Get a list of all the information of a specific process
    '''

    listOfProcessObjects = []

    #Iterate over all the running process
    for proc in psutil.process_iter():
       try:
           pinfo = proc.as_dict(attrs=['pid', 'name', 'create_time'])
           # Check if process name contains the given name string.
           # pinfo['path'] = psutil.Process(pinfo['pid']).cmdline()
           if processName.lower() in pinfo['name'].lower() :
               listOfProcessObjects.append(pinfo)
       except (psutil.NoSuchProcess, psutil.AccessDenied , psutil.ZombieProcess) :
           pass

    return listOfProcessObjects

例如,如果我试图运行我的应用程序:

python manage.py runserver -h 192.168.0.110 -p 5050

如果我试图找到以进程名“python”运行的进程PID,它将为我提供另一个进程,因为它在所有进程名下都显示为python

findProcessIdByName('python')

# Results
[ 
   { 
      'create_time':1571059481.29,
      'name':'python',
      'pid':9441
   },
   { 
      'create_time':1571059730.89,
      'name':'python',
      'pid':9889
   },
   { 
      'create_time':1571061314.85,
      'name':'python',
      'pid':13297
   },
   { 
      'create_time':1571062673.5,
      'name':'python',
      'pid':17716
   },
   { 
      'create_time':1571062674.62,
      'name':'python',
      'pid':17721 # This one is that running process
   }
]

运行bash -c "exec -a myapp python manage.py runserver -h 192.168.0.110"会产生以下错误:

Traceback (most recent call last):
  File "manage.py", line 3, in <module>
    import werkzeug.serving
ModuleNotFoundError: No module named 'werkzeug'

Tags: thenameinpy名称managetime进程