2016-10-24 5 views
0

패브릭을 사용 중이며 원격 시스템에서 일부 명령을 실행하려고합니다. 이 작업을 수행하는 Python 클라이언트를 작성했습니다.패브릭이 ssh 연결을 닫지 않습니다.

@task 
@serial 
def execute_command(timeout, command): 
    if timeout == -1: 
     return run(command, shell=False, pty=False, warn_only=True) 
    else: 
     return run(command, shell=False, pty=False, warn_only=True, timeout=int(timeout)) 

그것은 작업을 예약 않지만, 문제가 30 초 이상 정도 걸리는 일이있을 때마다, 그것은 execute_command 나오는 적이 있다는 것입니다. 타임 아웃도 작동하지 않습니다.

ss -t | less을 수행하고 소켓 활동을 점검하면 해당 명령과 관련된 ssh 연결이 여전히 활성 상태입니다. 그리고 내가 죽일 때까지는 여전히 활동적입니다. 그것은 결코 스스로 죽지 않습니다.

아무도 도와 드릴 수 있습니까? 나는 그것이 나오기를 원하고 타임 아웃이 작동하기를 원한다.

답변

0

알아 냈어.

실행 인수에 psuedo 터미널 옵션을 사용할 수 없게되었을 때, 나는 원하는 것을 얻을 수있었습니다.

관련 문제