Python:从multiprocessing.Process设置进程的名称
是否可以设置由multiprocessing.Process或billiard.Process生成的进程的名称。比如:Python:从multiprocessing.Process设置进程的名称,python,multiprocessing,celery,python-billiard,Python,Multiprocessing,Celery,Python Billiard,是否可以设置由multiprocessing.Process或billiard.Process生成的进程的名称。比如: import billiard for d in list: processes.append(billiard.Process(target=evaluate)) for p in processes: p.name = 'someID' p.start() 我希望在运行这些特定进程时,能够找到这些进程: import psutil for pro
import billiard
for d in list:
processes.append(billiard.Process(target=evaluate))
for p in processes:
p.name = 'someID'
p.start()
我希望在运行这些特定进程时,能够找到这些进程:
import psutil
for proc in psutil.process_iter():
if proc.name() == 'someID':
print(proc)
如果我可以建议,请使用进程id而不是进程名称-这样更好,而且会为您节省很多麻烦。。因为您以后只需要对流程进行引用,所以请使用其ID而不是名称 Python3.6演示了一种很好的处理进程ID的方法。下面是文档中的一个片段
from multiprocessing import Process
import os
def info(title):
print(title)
print('module name:', __name__)
print('parent process:', os.getppid())
print('process id:', os.getpid())
def f(name):
info('function f')
print('hello', name)
if __name__ == '__main__':
info('main line')
p = Process(target=f, args=('bob',))
p.start()
p.join()
我还看到,
芹菜
在你的标签中,如果你想玩并发进程,我建议你改为Supervisord
。如果您有一个小规模的项目,可以很好地控制流程。多处理。流程
有一个可以指定的名称
-参数。感谢您为芹菜流程提供的输入。我一定会看一看的。因为我看到每一个进程,不管是带有台球的子进程、多进程还是标准进程,都有“芹菜”的名称。但也因此,为芹菜任务定义一个名称将是非常棒的。不使用芹菜时,将进程名称设置为process.name似乎不起作用。我认为给它们命名是件好事,因为之后我可以删除整个进程组,而不必将它们的ID存储在某个地方。