问题:
linux环境中使用crond 执行python脚本,脚本中使用 执行
tp = subprocess.Popen('ip route show' , stdout = subprocess.PIPE, stderr=subprocess.PIPE, shell=True)
tp.stdout.readlines() 内容为空,无返回结果
打印 tp.stderr.readlines() 内容后,发现 报错信息:
ip_route_rst_err: "['/bin/sh: ip: command not found\n']"
解决方法:
使用 whereis ip 找到ip的安装路径(如:ubuntu ip命令路径:/bin/ip 和 /sbin/ip; centos ip命令路径:/usr/sbin/ip)
subprocess.Popen('/usr/sbin/ip route show' , stdout = subprocess.PIPE, stderr=subprocess.PIPE, shell=True)
再执行定时任务时,程序运行正常