저는 파일을 서버에서 서버로 복사하는 데 사용되는 python 파일에 대해 혼란 스럽습니다.subprocess.wait()의 반환 코드의 종류는 무엇입니까?
cmd를은 다음과 같습니다 hadoop fs -put /localhost/* /hadoop/*
코드입니다 : 지난 몇 일 동안
cmd = exc_path + ' ' + 'fs -put' + ' ' + src_path + item + ' ' + dst_path
process = subprocess.Popen(cmd, shell=True, stdout=subprocess.PIPE)
code = process.wait()
logfile.info('type(code) is %s, code is %s\n', type(code), code)
, 그것은 실행됩니다 확인. 그러나 그저께 그것은, code!=0
그런 다음 어제, 그것은 확인을 실행 한 code == 0
을 반환하고 오늘은 실패하고 반환 type(code) is <type 'int'>, code is 255
이
기타 문서는 wait()
가 0 또는 없음을 반환해야한다고 말했습니다 이렇게 왜 255를 얻을 수 ? 그리고 hadoop의 'put'cmd는 0 (성공시)과 -1 (실패 할 때)을 리턴해야합니다.
유용한 정보 : "슬프게도 shell = True를 사용하여 하위 프로세스를 실행할 때 wait()는 sh 하위 프로세스가 완료 될 때까지 기다리고 cmd 명령은 기다리지 않습니다." from
대단히 감사합니다! 사실, hadoop의 cmd 'put'이 -1을 반환하는 상황을 알 수 있습니까? 파일이 동일한 크기의 서버에서 hadoop에 업로드되었는지 확인했습니다. 감사합니다. – yimao