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

Python 如何使用自定义名称运行进程?,python,python-3.x,Python,Python 3.x,是否有任何方法可以使用自定义名称来运行流程,例如为其添加标签?因此,如果我想终止进程,很容易找到具有特定名称或标签的进程 以下是我用给定名称查找任何进程的代码: def findProcessIdByName(processName): ''' findProcessIdByName('python') Get a list of all the information of a specific process ''' listOfProcessObj

是否有任何方法可以使用自定义名称来运行流程,例如为其添加标签?因此,如果我想终止进程,很容易找到具有特定名称或标签的进程

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

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:

通过运行bash-c exec-a myapp python manage.py runserver-h 192.168.0.110,会出现以下错误:


你在什么环境下运行这个?您可以使用此功能以特定名称启动流程

我正在使用virtualenv在Debian 10上运行应用程序!通过这个bash-c exec-a,它将给出一些找不到某些库的错误!介意发布您的错误吗?&你在运行之前激活了virtualenv吗?是的,它已经激活了,我已经在回答中提供了错误运行exec-a python manage.py runserver-h 192.168.0.110-p 5050激活你的virtualenv后,预先准备好的bash可能正在刷新一个不是你的virtualenv的bashrc
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
   }
]
Traceback (most recent call last):
  File "manage.py", line 3, in <module>
    import werkzeug.serving
ModuleNotFoundError: No module named 'werkzeug'