【问题标题】:.sh started by cron does not create file via python由 cron 启动的 .sh 不会通过 python 创建文件
【发布时间】:2016-06-11 20:17:43
【问题描述】:

我有这个启动 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 时,.sh 给了我输出,但省略了换行符,所以我得到一个大字符串。

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

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

发生了什么事?

【问题讨论】:

    标签: python shell cron


    【解决方案1】:

    如果您的环境没有更多色彩,很难回答。

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

    我高度怀疑这是因为您正在使用 bashrc 中加载的 python 模块、python 版本或 python 路径。 crontab 不执行你的 bashrc,它是一个独立的环境,所以你不能假设你手动启动时正确运行的脚本会在你的 cron 中运行。

    尝试在你的 cron 任务中获取你的 bashrc,它很可能会解决你的问题。

    【讨论】:

      猜你喜欢
      • 2018-02-07
      • 2018-10-28
      • 1970-01-01
      • 1970-01-01
      • 2017-08-05
      • 2010-10-25
      • 2021-08-26
      • 2011-04-09
      • 1970-01-01
      相关资源
      最近更新 更多