corosync 클러스터를 테스트하고 있습니다. 파이썬으로 다른 노드로 자원을 이전하도록하기 위해 부동 IP가있는 인터페이스에서 실패하려고합니다.Python은 원격 명령을 실행하고 반환을 기다리지 않습니다.
딜레마는 원격 컴퓨터에서 실행되는 명령이지만 내 테스트 코드는 절대받지 못하는 응답을 기다리는 동안 영원히 정지합니다. 주입 된 오류로 인해 노드가 다시 부팅됩니다.
ssh = SSHClient(self.get_ms_ip(ms),
self.get_ms_user(ms),
self.get_ms_password(ms))
ssh.connect()
self.logger.info("Failing FIP eth now on %s" % ms)
ssh.exec_command(cmd, timeout=1)
#Code never reached this comment.
파이썬에서 어떻게 명령을 보내고 반환을 기다리지 않고 계속할 수 있습니까? 나는 여기에 제안 된대로 subprocess.Popen으로 내 ssh.exec_command를 래핑 해 보았습니다. Run Process and Don't Wait하지만 다른 것은 없었습니다.
시도한 nohup과 코드가 계속되지만 이제 내 cmd가 실패합니다. 다음은 내 cmd입니다. cmd = "echo % s | sudo -S ifdown eth3"% self.get_ms_root_password (ms) – user597608
이 래퍼를 사용해보십시오. sudo 명령을 쉽게 실행할 수 있습니다. http://stackoverflow.com/a/22592827/2854735 – HayatoY