如何关闭通过python打开Popen的ssh隧道
问题描述:
我需要创建一个ssh隧道,然后执行某些操作,然后撕下隧道。如何关闭通过python打开Popen的ssh隧道
我一直在试图做这样的:
def runCmd(self,cmd):
args = shlex.split(cmd)
return subprocess.Popen(args)
def openTunnel
cmd = 'ssh -f -N -L 1313:localhost:1313 [email protected]'
self.TunnelObj = self.runCmd(cmd)
这造成我的隧道。 我可以做我需要做的事情。现在我想拆掉隧道。
def closeSocket(self):
print '\nClosing Tunnel\n'
if self.TunnelObj.returncode == None:
print '\nabout to kill\n'
self.TunnelObj.kill()
但隧道仍然开着。 ssh会话仍然存在,并且该端口仍被分配。
如何关闭此通道?
这正是我的问题。 -f(将隧道发送到后台)使python不能杀死进程。 – 2011-06-10 11:42:36