我有一个复杂的多处理Python项目,它开始大约8-10个进程。这些过程获得不同的唯一名称,并且这些名称在代码中可以正常工作。但是,如果我在终端中检查正在运行的进程,则这些进程没有唯一的名称。它们的名称与父母的名称相同(实际上是命令行本身)。
使用环境:
的Python 3.6.6 RedHat Linux 7 xfce4终端0.8.7.4 最少的代码:
import multiprocessing
import time
def sleeping_function(s_time):
multiprocessing.current_process().name = "process_{}".format(s_time)
print(multiprocessing.current_process().name)
time.sleep(s_time)
if __name__ == "__main__":
times = [200, 201, 202, 203, 204]
with multiprocessing.Pool(processes=len(times)) as pool:
results = pool.map(sleeping_function, times)
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
您可以使用setproctitle模块来更改进程的系统名称。显然,该模块以相同的名称调用C例程。
setproctitle.setproctitle(multiprocessing.current_process().name)
它适用于我在Ubuntu上