2016-11-05 2 views
0

서비스 상태를 확인하려면 "sudo service nginx status"를 실행해야합니다.python을 사용하여 sudo 명령을 실행하는 방법

import commands 
service output = commands.getoutput("sudo service nginx status") 

하지만 "지정되지 청각 장애의 존재없이 askpass 프로그램을"점점하지 오전

누군가가 이것을 이해 하는가

: 나는 다음 있나요?

답변

1

commands.getoutput을 사용하면 sudo 명령에 필요한 사용자 입력을 제공 할 수 없습니다. 이름 자체를 설명 할 수 있습니다. 명령 출력에만 관심이 있습니다. stdin가 폐쇄되었습니다.

이에 대한 몇 가지 솔루션이 있습니다

  1. 이 파이썬 스크립트를 실행하는 sudo는 사용자의 암호 검증을 끕니다

    . (등 /의 sudoers/읽어)

  2. 파이프 비밀번호 : (안전/나쁜 솔루션하지만 쉬운) "에코 YOURPASS | sudo는 ..."

  3. 체크 아웃 subprocess.popen 당신이에서 두 입력을 제공 할 수 있도록 콘솔 또는 파일

관련 문제