python - 如何禁用 python 脚本的多个实例?
问题描述
我制作了一个 python 程序,我想禁用并行启动它的选项。
我在网上搜索,发现我需要用socket和端口来做,但我没有找到任何如何做的例子(我知道步骤,但我需要在google上搜索每一步,我不是这样确定如何开始)。
我还发现可能有一些库可以做到这一点,但仅限于特定的操作系统。我的脚本只针对 Windows 10,所以如果有一个库,我需要找到一个对 Windows 执行此操作的库。
你知道这样的库吗,或者你能给出一个更详细的例子来说明如何制作这个套接字监听器吗?
我在网上找到的结果实际上只是 python 2.7 中的一个问题(我使用的是 3.8):https ://stackoverflow.com/a/24381532/13786031
解决方案
如果您将自己绑定到特定端口,您将为您的程序实例保留此端口,并且在尝试绑定到此端口时将阻止新实例。
import socket # Import socket module
s = socket.socket() # Create a socket object
host = socket.gethostname() # Get local machine name
port = 12345 # Reserve a port for your service.
s.bind((host, port)) # Bind to the port
推荐阅读
- sql - 从两个表导入数据 SQL + PK/FK
- .net - 实体框架 - 将布尔值映射到 VARCHAR2(1)
- ruby-on-rails - elasticsearch如何知道我进行了sql db更新
- vb.net - how to assign Dictionary.items to a class object in vb.net
- ruby-on-rails - 将复选框列表传递给 rails 中的控制器
- python - 如何求解函数的一个变量,先给其他变量(Fsolve)
- ruby-on-rails - 如何在带有 RSpec 的 RESTful API 中使用令牌认证测试 Rails 设计登录?
- css - 使用 Button React 更改 .scss
- spring - JDBC 驱动程序当前不支持 COPY 操作
- java - 将 uint32_t 从 C++ 发送到 Java