首页 > 解决方案 > 制作在 Python 中运行和管理多个子程序的父程序的最佳方法是什么?

问题描述

我有一个运行面部识别服务的 Python 程序。该程序带有一个提供 UI 的 Tornado 服务器,因此我可以看到识别结果。我有几个 IP 摄像机,我希望这些摄像机中的每一个都有单独的识别服务。

我现在做的是:

import subprocess
import user_config

port = 9000
for cam in user_config.CAMERA_ID:
    command = "python recognition.py -camid "+cam+" -port "+str(port)
    p = subprocess.Popen(command, shell=True, stdout=subprocess.PIPE)
    port = port+1

这是一个好方法吗?如果假设其中一个进程死亡,我该如何检查并恢复它?

标签: pythonmultiprocess

解决方案


你有两个选择:

  • multiprocessing

在另一个进程中运行一个函数,你可以通过argsand给 args kwargs。你可以使用 sharedVariableArray这个策略

  • subprocess

使用命令行运行另一个脚本,您可以在字符串中传递 args 并让它们通过sys.argv


推荐阅读