SSH进程持久但远程访问已关闭

时间:2015-05-12 12:49:03

标签: python ssh solaris-10

我在Solaris 10上编程时遇到问题,希望在这里寻求帮助。我创建了一个脚本来调用“ssh”二进制文件。在将“ssh”二进制文件作为子进程运行之前,此脚本会运行一些检查。该脚本通过SUID方法假定“root”的强大功能。

使用此脚本一段时间后,有些进程会像下面一样悬空。

  

root 23322 1 0 12:24:38? 0:00 scriptssh device321

我已登录 device321 ,发现设备中没有其他用户。

经过一些阅读后,我意识到脚本已从控制终端断开连接(查看“tty”和“PPID”处的1)。如果我使用“沟通”方法,这是Python中子流程的谬误吗?

任何人都有办法解决这个问题或找出导致这种情况发生的原因吗?

该脚本是用Python编写的。

编辑:

也许更容易突出这样的问题:

用户A登录远程服务器 - > SSH会话已创建

用户A退出远程服务器 - > SSH会话仍然是

SSH会话在当前服务器上占用高CPU。

以下是代码的一些片段。

def main():
   ....
   ....
   try:
      if logic_user(username) == "privilege":
         if ip_check(src_ip,p_list):
            ssh_out(ssh_exe)
         else:
            print("You do not have access to SSH")
   except KeyboardInterrupt:
      print("Ctrl+c keyed in")
   finally:
      print("\nexiting ssh")

def ssh_out(ssh_exe):
   cmd = subprocess.Popen(ssh_exe, shell=True)
   cmd.communicate()

0 个答案:

没有答案