나는 참고로이를 사용하지만, 내가 필요 정확히 무엇을 달성 할 수되지 않은 : 나는이 읽고 있던 Calling an external command in Python파이썬의 비동기 백그라운드 프로세스?
: 우리의 프로젝트에 대한 http://www.python.org/dev/peps/pep-3145/
을, 우리는 업데이트해야 할 5 개 svn의 체크 아웃을해야 우리는 애플리케이션을 배포 할 수 있습니다. 빠른 배포가 생산 배포보다 생산성 측면에서 더 중요한 내 개발 환경에서는 프로세스 속도를 높이기 위해 노력해 왔습니다.
나는 제대로 작동하지만 몇 가지 제한이있는 bash 스크립트가 있습니다. 나는 다음과 같은 bash는 명령 '업데이트 SVN'복수를 불 :
(svn update /repo1) & (svn update /repo2) & (svn update /repo3) &
병렬이 모두 실행하고 꽤 잘 작동합니다. 또한 나머지 개작 스크립트에서이 패턴을 사용하여 각 개미 빌드를 실행 한 다음 전쟁을 Tomcat으로 옮깁니다.
그러나 업데이트 나 빌드 중 하나가 실패하면 배포를 중지 할 수 없습니다.
필자는 bash 스크립트를 파이썬으로 다시 작성하므로 브랜치와 배포 프로세스를보다 잘 제어 할 수있다.
'svn update/repo'명령을 실행하기 위해 subprocess.call()을 사용하고 있지만, 각각은 순차적으로 작동합니다. 나는 (svn update/repo) & '을 시도하고 그 모두가 실행되지만 결과 코드는 즉시 반환됩니다. 따라서 비동기 모드에서 특정 명령이 실패했는지 여부를 판단 할 방법이 없습니다.
import subprocess
subprocess.call('svn update /repo1', shell=True)
subprocess.call('svn update /repo2', shell=True)
subprocess.call('svn update /repo3', shell=True)
나는 각 유닉스 명령어 오프 파이썬 불을 가지고하는 방법을 찾아야 싶지만, 그리고 통화의 전체 스크립트가 중지 언제든지 실패 할 경우.
그건 내가 찾고있는 것입니다. – Geuis
감사합니다. 작동합니다. 백그라운드에서 하위 프로세스를 실행할 수있는 방법이 있습니까? 이제 터미널에 표시됩니까? (현재 나는 작업 명령으로 열린 셸을 본다) –