2016-10-28 18 views
1

Я хочу, чтобы установить точку монтирования с именем VirtualDVD. я хочу, чтобы запустить команду «gksudo размонтировать VirtualDVD»как umount из скрипта python

Моя функция является:

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, и я могу ввести свой пароль, но тогда кажется, что umount не работает, потому что VirtualDVD все еще монтируется. Почему?

+0

Это будет хорошо, если ваш запустить скрипт из корня в первую очередь –

+0

я не хочу, чтобы запустить как корень, я хочу, чтобы каждый пользователь может запустить его. – demosthenes

ответ

0

Я выясняю это ... я должен убрать с полным путем точки крепления. я изменил функцию размонтировать следующим образом, и это работает ...

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