2014-05-13 7 views
0

패브릭을 사용하여 원격 호스트에 연결하고 있습니다. 상태를보기 위해 관리자에게 전화했습니다. 하지만 패브릭 파일을 사용하여 감독자 인터페이스를 종료하는 방법을 모르겠습니다. 그것을하는 방법?패브릭 파일로 감독자 프로세스를 종료하는 방법은 무엇입니까?

from fabric.api import run 
from fabric.api import env 

env.hosts = [ 
    'my_host' 
    ] 

def my_fab(): 
    run("supervisorctl -u 'me' -p 'aaa'") 

>>> fab my_fab 
>>> # plenty of stdout 
>>> supervisor>        # I'm stuckled here 

답변

1

이 오히려 사용자 상호 작용을 fabric

이 명령에 팹 호출을 피 사용하는 것보다 supervisorctl를 사용하여 필요에 대해

패브릭 원샷가 호출 않습니다되어

내 fabfile이 같다 명령을 입력 한 다음 반환합니다. 콘솔에서 장기간 활동하지 않아야합니다. 문제의 해결 방법은 대화식 모드로 들어가는 것이지 (추가 입력을 기다리는 것), 비 대화식 모드에서만 supervisor으로 호출하십시오.

비 대화식 모드에서 supervisorctl를 호출

관리자 제어 명령은 대화식 및 비 대화식 모드를 제공합니다.

비 개설 모드입니다.

예. 작업을하여야한다 당신의 팹 작업이 적용

$ supervisorctl status logproxy 
logproxy       STOPPED Not started 

: 내 설치, 나는 이런 식으로 supervisorctl를 호출 logproxy

라는 서비스가있다.

"Welcome to Fabric!"의 샘플 코드에 이어 다음과 같이 보일 것입니다 :

from fabric.api import run 

def super_status(): 
    uname = "zen" 
    pswd = "then" 
    cmd = "supervisorctl -u {uname} -p {pswd} status logproxy".format(uname=uname, pswd=pswd) 
    # to see the command you are going to call, just for show 
    print cmd 
    # and run it 
    run(cmd) 

그리고 사용됩니다.

$ fab -l 

.

하고 작업 super_status 전화 :

$ fab super_status -H localhost 
+0

내가 코드 사용자 이름과 암호를 추가해야을? 나는 그것이 맞다 고 생각 하느냐? – Zen

+0

내 fabfile에서 "run ("supervisorctl -u 'me -p'aaa 'stpros logproxy logproxy STOPPED Not started ")를 써야합니까? – Zen

+0

그리고이 질문은"직물로 텍스트를 입력하는 방법 프롬프트에? " – Zen