由cron启动的.sh不会通过python创建文件

时间:2016-02-28 21:37:30

标签: python shell cron

我有这个启动python文件的.sh。这个python文件在通过带有sudo的命令行启动时生成.txt,但是在通过.sh

启动时不会生成.txt

为什么pyhton文件在用cron和.sh启动时不会给我一个.txt?

当我使用su -c "python /var/www/html/readdht.py > /var/www/html/dhtdata.txt" 2>&1 >/dev/null时,。。为我提供输出,但省略了换行符,所以我得到一个大字符串。

当使用sudo python readdht.py从命令行启动时,python文件会正确创建.txt。

如果.sh python文件以su -c "python /var/www/html/readdht.py启动,则不会创建.txt

发生了什么事?

1 个答案:

答案 0 :(得分:0)

如果环境没有更多颜色,很难回答。

以下是解决此问题的方法:不要将输出重定向到/ dev / null。然后在你的cron日志中读到发生了什么。您的脚本似乎很可能失败,因此不会返回任何标准输出,因此不会创建文件。

我非常怀疑这是因为你使用的是python模块,或者你的bashrc中加载​​的python版本或python路径。 Crontab不执行你的bashrc,它是一个独立的环境,因此你不能假设手动启动时正确运行的脚本可以在你的cron中运行。

尝试在cron任务中搜索bashrc,它很可能解决您的问题。