들과 소통하는 것이 가능 할 sub 하위 프로세스와 함께 하위 프로세스.Popen?

StackOverflow https://stackoverflow.com/questions/250700

  •  05-07-2019
  •  | 
  •  

문제

를 쓰려고 노력해요 python 스크립트는 패키지에 우리의 소프트웨어입니다.이 스크립트를 구축하는 데 필요한 우리의 제품 및 포장니다.현재 우리가 다른 스크립트는 각각의 조각은 개별적으로 포함하는 csh 및 perl 스크립트가 있습니다.하나의 스크립트를 실행하는 다음과 같:

sudo mod args

모드는 perl 스크립트그래서 나는 할 것입

proc = Popen(['sudo', 'mod', '-p', '-c', 'noresource', '-u', 'dtt', '-Q'], stderr=PIPE, stdout=PIPE, stdin=PIPE)

문제는 이 모드는 스크립트가 필요 몇 가지 질문에 대답합니다.이를 위해 내가 생각하는 전통적인

(stdout, stderr) = proc.communicate(input='y')

하고 있습니다.나는 생각하지 않기 때문에 작업하는 프로세스 Popen 은 제어 sudo,아니 모 스크립트에게 묻는 질문입니다.어떤 방법이 교통하는 모드와 스크립트 실행을 통해 sudo?

도움이 되었습니까?

해결책

나는 선택을 가 Pexpect.

import pexpect
child = pexpect.spawn ('sudo mod -p -c noresource -u dtt -Q')
child.expect ('First question:')
child.sendline ('Y')
child.expect ('Second question:')
child.sendline ('Yup')

다른 팁

내가 생각하 제거해야 합니다 sudoPopen 전화 사용자가 필요합의 귀하의 스크립트 유형 sudo.

또한 이렇게 많은 명시적을 위한 필요 높은 권한에서의 스크립트 감추는 대신 그것은 내부 Popen.

가장 간단한 것이 될 것이 실행하여 제어 script(Python 스크립트)를 통해 sudo.당신은 당신을 할 수 있는 것 또는 없는 옵션입니까?

정보가 필요합니다.

  1. 은 sudo 요청을 위해 당신 password?
  2. 어떤 종류의 인터페이스 모드는 스크립트가에 대한 질문?

기 때문에 이런 것들은 처리하지 않으로 정상적인 파이프를 통해.

솔루션 모두에 대한 이들의 수 Pexpect, 는 오히려 전문가의 처리에서 재미있는 스크립트는 요청을 위해 암호를 다양한 기타 입력 문제입니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top