我有一个脚本(在CentOS下为bash),该脚本调用一个程序,我必须告诉它用于串行通信的端口。
我有一些代码可以通过端口顺序查找未使用的端口并选择它。 (我正在使用“ / sbin / lsof -i -P -n”并grepping结果以查看是否正在使用该端口)。很好。
我的问题是我想同时启动此脚本的多个实例。选择一个空闲端口和使用该端口的程序之间存在延迟,因此该端口不再显示为可用。
结果是脚本的每个实例都选择相同的端口。
有没有一种简单的机制可以选择一个空闲端口并以原子方式将其锁定,从而避免出现这种竞争情况?