How to execute "gksudo umount VirtualDVD"

Wildman best_lay at yahoo.com
Fri Oct 28 18:22:23 EDT 2016


On Fri, 28 Oct 2016 17:19:17 -0500, Wildman wrote:

> On Fri, 28 Oct 2016 11:05:17 +0300, Demosthenes Koptsis wrote:
> 
>> Yes it was pasted wrong...
>> 
>>      def umount(self):
>>          '''unmounts VirtualDVD'''
>>          cmd = 'gksudo umount VirtualDVD'
>>          proc = subprocess.Popen(str(cmd), shell=True, 
>> stdout=subprocess.PIPE).stdout.read()
>>          print proc
>> 
>> it fails silently.... the gksudo runs correctly. I can input the password.
>> 
>> But the umount does nothing. I keep have mounted the VirtualDVD folder.
>> 
>> 
>> On 10/28/2016 12:54 AM, Ian Kelly wrote:
>>> On Thu, Oct 27, 2016 at 3:30 PM, Demosthenes Koptsis
>>> <demosthenesk at gmail.com> wrote:
>>>> I want to execute the command "gksudo umount VirtualDVD"
>>>>
>>>> My code is this but it fails:
>>>>
>>>> def umount(self):
>>>>      '''unmounts VirtualDVD''' cmd ='gksudo umount VirtualDVD' proc =
>>>> subprocess.Popen(str(cmd),shell=True,stdout=subprocess.PIPE).stdout.read()
>>>>      print proc
>>> It looks like your code pasted incorrectly.
>>>
>>>> It pops up the gksudo dialog, and then fails. But i don't get any stdout or
>>>> stderror.
>>> Fails how? Is there an error? Does it hang? Does nothing happen at all?
>>>
>>> My initial thought is that you might want to try using
>>> Popen.communicate instead of stdout.read in case you're getting
>>> deadlocked. See the big red warning below
>>> https://docs.python.org/3/library/subprocess.html#subprocess.Popen.stdout
> 
> Try this:
> 
>     def umount(self):
>         '''unmounts VirtualDVD'''
>         cmd = ["gksudo", "umount", VirtualDVD]
                                               ^


>         p = subprocess.Popen(cmd, shell=True, stdout=subprocess.PIPE)
>         proc = p.communicate()
>         print proc

Oops!

-- 
<Wildman> GNU/Linux user #557453
The cow died so I don't need your bull!



More information about the Python-list mailing list