我有一个名为speech.pyw的python脚本。我不希望它在运行时出现在屏幕上,所以我使用了该扩展。使用python检查正在运行的python进程
如何使用另一个python脚本检查脚本是否正在运行?如果它没有运行,这个脚本应该启动它。
我有一个名为speech.pyw的python脚本。我不希望它在运行时出现在屏幕上,所以我使用了该扩展。使用python检查正在运行的python进程
如何使用另一个python脚本检查脚本是否正在运行?如果它没有运行,这个脚本应该启动它。
了我的头顶部,至少有两种方法可以做到这一点:
另一种混合策略是脚本创建特定文件并将其写入PID(进程ID)。运行程序脚本可以读取该文件,如果指定的PID未运行或不是脚本,则可能会删除该文件。这也与平台有关。
对于Windows,使用'os.open'和'O_TEMPORARY'标志来获取保证在进程退出时被删除的文件,即使进程已终止。如果您希望文件是每个会话,则必须命名包含当前会话ID的文件。最好使用共享内存的命名部分,因为您可以自动获取所有这些内容 - 即清理和每会话名称空间。 – eryksun
如果只是Windows,您应该使用对象名称空间,例如具有PID的共享存储器的命名部分,例如, 'm = mmap.mmap(-1,8,'Global \\ Spam');''pid = int.from_bytes(m,'little')'。如果'pid'非零,它可以退出。否则,该脚本将其pid写入共享存储器,例如, 'm [:] = os.getpid()。to_bytes(8,'little')',并继续执行。后者使用名称为“Global \\ Spam”的名称,这是名为“垃圾邮件”的部分,可在所有Windows会话中全局显示。如果您希望仅用于当前会话,请使用“垃圾邮件”或“本地垃圾邮件”。 – eryksun