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 -- <Wildman> GNU/Linux user #557453 The cow died so I don't need your bull! -- https://mail.python.org/mailman/listinfo/python-list