我正在运行一个远程登录到terminal server
. 有时脚本在一个实例已经运行时启动,这会导致已经运行的脚本失败
EOFError: telnet connection closed
pythonic
在我尝试打开与telnetlib
方法来检查客户端计算机上是否已在使用所需的套接字?
解决方案:
我想避免进行子进程调用,但由于我不控制客户端计算机上的软件,并且其他程序可能使用相同的套接字,所以下面的文件锁定建议(一个好主意)对我不起作用。我最终使用了 SSutrave 的建议。这是我在 Windows 7 中使用 netstat 的工作代码:
# make sure the socket is not already in use
try:
netstat = subprocess.Popen(['netstat','-nao'],stdout=subprocess.PIPE)
except:
raise ValueError("couldn't launch netstat to check sockets. exiting")
ports = netstat.communicate()[0]
if (ip + ':' + port) in ports:
print 'socket ' + ip + ':' + port + ' in use on this computer already. exiting'
return