python - 检查现有进程是否存在 - 如果存在,则与其通信,否则创建一个新进程

标签 python concurrency

我确定以前有人问过这个问题,但我找不到。

我写了一个 Python 程序,给定一个目录,它使用一个非常简单的启发式方法来确定如何“解压”它的内容以及到哪个目标目录。

只要新下载完成,就会执行此程序。如果很多下载几乎同时完成,我会得到很多同时解包的进程。我想通过重写程序的大部分来一次只解压一个目录来解决这个问题。

因此,为了实现这一点,我想我会使用一个“lock/PID”文件,其中包含任何当前正在执行的程序的 PID。如果锁/PID 文件存在,新产生的进程应该简单地发送一些类似 ("queue", "D:/some/directory") 的内容到现有进程并让该进程解压完成当前解包后的那个目标。

我如何在 Python 中实现这一点?这必须适用于 Windows 系统,但最好也适用于 GNU/Linux。

最佳答案

如果你只是想检查PID文件是否存在,你可以使用:os.path

os.path.exists(path) 

关于python - 检查现有进程是否存在 - 如果存在,则与其通信,否则创建一个新进程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10102312/

相关文章:

java - 什么时候在 Java 中选择多个进程而不是线程?

python - 在python中调用数据库时如何判断高度是否重复 第一个打印具有较小权重的行?

python - 每两列相加

python - 评估多序列比对

Java JFrame removeall 挂起应用程序

java - 跨线程的对象可见性

python - 在 Tornado 的阻塞上下文中调用异步函数

Python 打印 "<built-in method ... object"而不是列表

c++ - 在实时应用程序中同步多个线程之间的容器访问的最佳方法是什么

c# - 线程可以做什么基于任务的异步模式 (TAP) 和带有任务(或 Task<T>)的任务并行性 (TPL) 无法做到的事情?