crontab 中定时执行py脚本,不能进入main方法

问 题

一直纳闷,main外面的语句可以执行,但是在main中就不能进入执行。
在外面有命令可以成功执行。

尝试

因为重定向到日志没有记录错误输出,一度以为不会出现错误…(打脸),在crontab重定向标准错误输出后,
python /home/project/xxx/XXX.py >>/home/project/xxx/log.log 2&1
查看日志,发现在main中一处引用文件地方出错,== 没有找到该文件 ==。
原因是,我在脚本里用的相对路径,而在crontab中它执行环境本地路径 测试为"/root", 也同样看出为什么crontab中命令都是使用绝对路径!

# 测试代码
0 9 * * *  pwd >> /root/xx/log 2>&1

所以使用相对路径绝对是找不到
而在命令行执行的目录正好是py脚本所在目录,所以能够执行,若跑到其他目录执行py脚本也同样会报找不到文件!

解决

import os
pwd = os.getcwd()
cookieFile = os.path.join(pwd,"chaoXingCOMCookies.txt")
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章