error from Popen only when run from cron
Dan Stromberg
drsalists at gmail.com
Tue Apr 17 21:54:02 EDT 2018
On Tue, Apr 17, 2018 at 4:11 PM, <daniel.chmielewski at gmail.com> wrote:
> W dniu sobota, 27 stycznia 2018 16:59:50 UTC+1 użytkownik Larry.... at gmail.com napisał:
>> I have a script that does this:
>>
>> subprocess.Popen(['service', 'some_service', 'status'],
>> stdout=subprocess.PIPE, stderr=subprocess.STDOUT)
>>
>> When I run it from the command line it works fine. When I run it from
>> cron I get:
>>
>> subprocess.Popen(['service', 'some_service', 'status'],
>> stdout=subprocess.PIPE, stderr=subprocess.STDOUT)
>> File "/usr/lib64/python2.7/subprocess.py", line 711, in __init__
>> errread, errwrite)
>> File "/usr/lib64/python2.7/subprocess.py", line 1327, in _execute_child
>> raise child_exception
>> OSError: [Errno 2] No such file or directory
>>
>> Anyone have any clue as to what file it's complaining about? Or how I
>> can debug this further?
>
> Larry, I have exactly the same problem. I'd like to run a script and from normal user it works, and from cron doesn't.
>
> In sumarry I was googled to find information how to set two or more env. variables and pass them to subprocess.open. I also try to read $HOME/.profile where usually these env. var. are setting. Have anyone see any example how to do it? Please let me know. Regards, Daniel
Is service on your $PATH in the cronjob?
What if you set the variables you need in the program, and test it
with "env - myscript" in a login shell, to run myscript with an empty
environment? This tends to make under cron and not under cron more
similar.
HTH
More information about the Python-list
mailing list