Kev*_*ion 7 python console cron
我用来popen在Python脚本中执行命令,我通过cron调用它.
Cron调用了这个脚本,但如果我手动调用它,行为就不一样了.
from subprocess import Popen, PIPE
pp = Popen('/usr/bin/which iptables', shell=True, stdout=PIPE)
data = ''
for ln in pp.stdout:
data = data+ln
if data == '':
print 'ko'
else:
print 'ok : '+data
Run Code Online (Sandbox Code Playgroud)
# python /home/user/test.py
> : /sbin/iptables
Run Code Online (Sandbox Code Playgroud)
* * * * * /usr/bin/python /home/user/test.py >> /tmp/err_cron
ko
ko
ko
Run Code Online (Sandbox Code Playgroud)
为什么cron不能正常运行这个脚本?
Gre*_*ill 20
通常,当从cron运行进程时,会将其PATH设置为非常严格的值(我的crontab的手册页说明/usr/bin:/bin).您可能需要添加:
PATH=/usr/bin:/bin:/sbin
到你的crontab文件的顶部.