여러 방울을 만들고 각 방울에 스크립트를 보내고 출력을 기다리지 않고 모든 스크립트를 실행하는 프로그램을 만들려고합니다. 다음 코드로 터미널에서 연결이 끊어 질 때 종료되지 않도록 nohup을 사용하여 백그라운드에서 실행하려고했습니다.
for i in len(script_names):
c = Connection(host = host[i], user = user[i], connect_kwargs = {"password" : password, "key_filename" : key_filename})
c.run("nohup python3 /root/" + script_names[i] + " &")
"pty = False"설정, 출력을 "> / dev / null </ dev / null &"로 dev / null로 리디렉션하는 등 동일한 아이디어의 다른 변형을 시도했지만 아무것도 작동하지 않는 것 같습니다.
패브릭으로 출력을 기다리지 않고 동시에 다른 호스트에서 스크립트를 실행하는 여러 명령을 실행할 수 있습니까? 아니면 다른 패키지를 사용해야합니까?
Fabric 2.x의 그룹은 아직 완전히 구체화되지 않았기 때문에이 사용 사례에 적합하지 않습니다. 패브릭 1.x에서는 키가 host
목록 의 호스트 문자열 이고 값이 현재 script_names의 이름 인 script_names에 대한 사전을 사용하여이 작업을 수행합니다 . 그런 다음 각 작업이 평소와 같이 실행 명령을 병렬로 수행 fabric.api.env.host_string
하여 작업 내에서 값을 검색 하도록합니다. 패브릭 2.x의 실행 계층은 아직이 사용 사례 afaik을 지원하지 않습니다. 이것은 해킹을 시도한 것이었지만 저자는이 기능이 Executor에서 처리되어야한다고 올바르게 지적했습니다.이 기능은 당시에 해결책을 찾을 수 없었습니다 : https://github.com/fabric/fabric / 당기기 / 1595
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다