2016-10-28 2 views
1

나는 VirtualDVD라는 마운트 포인트를 umount하고 싶다. 내가 명령 "gksudo 언 마운트 VirtualDVD"파이썬 스크립트에서 언 마운트하는 방법

내 기능이 실행하려면 :

def umount(self): 
    '''unmounts VirtualDVD''' 
    cmd = 'gksudo umount VirtualDVD' 
    proc = subprocess.Popen(str(cmd), shell=True, stdout=subprocess.PIPE).stdout.read() 
    print proc 

내가 터미널에서 "gksudo 언 마운트 VirtualDVD"시도를 모든 것이 괜찮습니다.

서브 프로세스에서 "gksudo umount VirtualDVD"를 시도하면 실패합니다 ... gksudo 대화 상자가 나타나고 암호를 입력 할 수 있지만 VirtualDVD가 여전히 마운트되어 있기 때문에 umount가 실패한 것으로 보입니다. 왜?

+0

, 나는 모든 사용자를 원하는 작품 ... 그것을 실행할 수 있습니다. –

+0

에 루트에서 스크립트를 실행하면 괜찮을 것 – demosthenes

답변

0

나는 그것을 알아 낸다 ... 나는 설치 지점의 완전한 경로로 umount해야한다. 나는 다음과 같이 언 마운트 기능을 변경하며

def umount(self): 
    '''unmounts VirtualDVD''' 
    #get virtualdvd folder 
    home = QtCore.QDir.homePath() 
    vpath = home + "/VirtualDVD" 

    cmd = 'gksudo umount ' + vpath 
    proc = subprocess.Popen(str(cmd), shell=True, stdout=subprocess.PIPE).stdout.read() 
    print proc 
은 내가 루트로 실행하지 않는 첫 번째 장소
관련 문제