运行 2 python 个脚本,它们不会相互影响

running 2 python scripts without them effecting each other

我有 2 个 python 脚本,我正在尝试并排 运行。但是,它们中的每一个都必须彼此独立地打开、关闭和重新打开。此外,其中一个脚本是 运行ning 在 shell 脚本中。

Flaskserver.py & ./pyinit.sh

Flaskserver.py 只是一个烧瓶服务器,需要不时重新启动以加载新页面。 (无法定义所有页面,因为 html 是可互换的)。 pyinit 是 运行s as xinit ./pyinit.sh(它的 selenium-webdriver pythoncode)

所以当 Flaskserver 更改并重新启动时,./pyinit 需要等待大约 20 秒然后重新启动。

其中任何一个都可能产生错误,因此我需要能够在重新启动之前检查 Flaskserver 是否有错误。/pyinit 如果 ./pyinit 错误,我需要将 Flaskserver 设置为默认值,然后重新启动两者他们。

我对子流程略知一二,但不确定它如何处理错误和停止启动代码。

我建议您使用 multithread 为您的进程创建一个不同的线程,而不是使用子进程。

如果全局变量发生冲突,多线程不会解决问题,但是 运行 它们在不同的脚本中,虽然您可以解决这个问题,但您可能会在日志文件等其他内容中发生冲突。

现在,如果您将两个进程 运行 从一个负责将它们分开并在必要时分配不同的全局变量的进程中保留下来,您应该能够保持更好的控制。使用多线程库中的 join 和 lock 之类的东西,也将确保它们不会发生冲突,并且应该很容易让一个进程进入睡眠状态,而另一个进程 运行 (根据等待 20 秒)。

您可以将线程列表保存为全局变量,以及您的锁。例如,我已经使用 CherryPy 的服务器成功完成了这项工作。有关多线程的更多详细信息,请查看我上面链接的问题,解释得很好。