2012-07-19 2 views
3

원격 기계의 웹 서버를 작동 시키는데 사용하는 스크립트에 대해 나는 꽤 특별한 문제가 있다고 생각합니다.bash 스크립트를 시작하는 원격 기계에서 python 스크립트 시작하기

장부를 확인한 후 원격 컴퓨터에서 "작성기"스크립트를 시작하는 컨트롤러 스크립트가 있습니다. 이 빌더 스크립트의 일부는 두 스크립트가 완료된 후에 계속 실행하려는 프로세스를 시작하는 bash 스크립트를 호출합니다.

내 유일한 문제점은 빌더 스크립트가 끝난 것처럼 보이지만 (마지막 줄에 도착 함) 컨트롤러 스크립트에 제어를 반환하지 않는 것입니다.

레코드의 경우 컨트롤러 스크립트에서 (ssh 호출을 시작하기 위해) 원격 컴퓨터에서 작성 스크립트를 시작하기 위해 subprocess.call을 사용하고 있습니다. 나는 빌더 스크립트에서 bash 스크립트를 시작하는 다양한 방법을 가지고 놀았지만 빌더는 bash 스크립트에 의해 생성 된 프로세스를 죽일 때까지 컨트롤러에 제어를 리턴하지 못하는 것 같습니다.

상황은 내가 시도 :

pid=os.spawnl(os.P_NOWAIT,dest+'/start_background_script.sh') 
pid=subprocess.Popen([dest+'/start_background_script.sh']) 
os.system(dest+'/start_background_script.sh &') 
pid=os.spawnl(os.P_NOWAIT,dest+'/start_background_script.sh') 

배쉬 스크립트는 당신이 그것을과 배경 두 개의 프로세스를 실행하는 기록하고 제어를 반환한다.

어떤 권장 사항이 있습니까?

답변

3

저에게 fabric과 같은 직장 같은 소리.

패브릭은 원격 (또한 로컬) 시스템에서 쉘 호출을 처리합니다.

+0

2.6.2 기반 모듈 만 사용하여 잠겨 있습니다. 그러나 이것은 알고있는 것이 좋다. – Malforus

관련 문제