subprocess troubles

Tomas Pelka tompelka at gmail.com
Thu Jan 21 08:27:19 EST 2010


On 01/21/2010 11:39 AM, Javier Collado wrote:
> Hello,
>
> If you set shell=False, then I think that arg2 should be separated
> into two different parts.
>
> Also, arg3 could be set just to pattern (no need to add extra spaces
> or using str function).
>
> Best regards,
>      Javier
>
> 2010/1/21 Tomas Pelka<tompelka at gmail.com>:
>
>> Hey all,
>>
>> have a problem with following piece of code:
>>
>> --------------------------------------------------
>> import subprocess
>>
>> paattern = "python"
>> cmd = "/usr/bin/locate"
>> arg1 = " -i"
>> arg2 = " -d /var/www/books/mlocate.db"
>> arg3 = str(" " + pattern)
>>
>> p1 = subprocess.Popen([cmd, arg1, arg2, arg3], shell=False,
>> stdout=subprocess.PIPE, stderr=subprocess.PIPE)
>> (stdoutdata, stderrdata) = p1.communicate()
>>
>> print p1.returncode
>> print "%s -- %s" % (stdoutdata, stderrdata)
>> --------------------------------------------------
>>
>> But return code is always 1 and command do not return any result/error
>> (stdoutdata, stderrdata are None). If I run this command (/usr/bin/locate -i
>> -d /var/www/books/mlocate.db python) from standard shell everything goes
>> fine.
>>
>> Could you please give me an advice what I'm doing wrong?
>>
>> Thanks
>> Cheers
>>
>> --
>> Tom
>>
>> --
>> http://mail.python.org/mailman/listinfo/python-list
>>
>>

Thanks Javier for advice, but sill same result. I'm running this code as 
cgi  script from apache. Weird is that when i run  it from shell as 
apache user, like

----------------
# su -s /bin/bash -c "/usr/bin/locate -i -d /var/www/books/mlocate.db 
python; echo $?" apache
0
---------------
I always get "0", but as cgi it returns "1". When I run this script by 
other user (tom), I'll obtain nonzero output what is OK.

Additional info:
#  su -s /bin/bash -c "ls -l /var/www/books/mlocate.db" apache
-rw-rw-r-- 1 tom books 1465653 Jan 20 13:33 /var/www/books/mlocate.db
so db is readable by apache

Whore source attached.

-- 
Tom


-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
Name: search.py
URL: <http://mail.python.org/pipermail/python-list/attachments/20100121/74c78bb2/attachment-0001.ksh>


More information about the Python-list mailing list