On May 27, 6:10 pm, thebiggestbangthe...@gmail.com wrote: > hello everyone :-), > I am a newbie to python. I am trying to run a > bash script from within a python program. I would greatly appreciate > any pointers/comments about how to get around the problem I am facing. > > I want to run bash script: code.sh from within a python program. > code.sh needs to be run like so from the command line > [code] > $ sudo code.sh arg1 arg2 > [/code] > > I read up on some documentation but am not very clear about how to use > popen. I want to relegate the shell to a background process, but it > needs to accept the sudo passwd too! > > I have tried > [code] > p = subprocess.Popen(['/bin/bash', 'sudo '+mypath+'code.sh '+arg1+' > '+arg2], > stdout=subprocess.PIPE, > stderr=subprocess.STDOUT) > [/code] > I tried some code from stackoverflow.com/questions/694000/why-doesnt- > subprocess-popen-always-return > > nothing really happens when this executes, the PIPE option pshes it to > the background and I can't push in the sudo passwd. Can someone please > give me an idea of how to go about this. > > To recap, I want to run a shell script, which needs to be started with > sudo, and then push it into the background. > > Thanks, > -A
Your best bet is to make sudo not ask for a password. :) If you don't have the rights, then you can use pexpect to do what you want to do. http://pexpect.sourceforge.net/pexpect.html See the second example on that page. child = pexpect.spawn('scp foo myn...@host.example.com:.') child.expect ('Password:') child.sendline (mypassword) ~Sean -- http://mail.python.org/mailman/listinfo/python-list