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 >>> <demosthen...@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! -- https://mail.python.org/mailman/listinfo/python-list