python - 为什么 crontab 不运行 python 脚本
问题描述
这就是我配置 crontab 的方式(通过使用crontab -e
)
* * * * * /home/jeff/Desktop/scripts/job_pull_queue.sh >> /home/jeff/Desktop/scripts/log.txt
这是内容/home/jeff/Desktop/scripts/job_pull_queue.sh
#!/bin/bash
echo "Running job_pull_queue.sh @ $(date)"
cd /home/jeff/Documents/code/some_project
echo $(printenv)
/home/jeff/miniconda3/bin/python -m util.main
现在的问题是,当./job_pull_queue.sh
在终端中运行时,它可以工作,但是我可以从日志文件中看出crontab
从未执行过最后一行/home/jeff/miniconda3/bin/python -m util.main
(我可以在日志文件中看到前一个结果echo
,但看不到 python 脚本本身),发生了什么?我如何解决它?
更新:这是printenv
crontab 运行时的结果
SHELL=/bin/sh PWD=/home/jeff/Documents/code/some_project LOGNAME=jeff HOME=/home/jeff LANG=en_US.UTF-8 SHLVL=0 PATH=/usr/bin:/bin OLDPWD=/home/jeff _=/usr/bin/printenv
解决方案
行...
我的 Python 脚本从我的用户配置文件中读取了几个 env 变量,当然,这些变量在运行脚本时不存在crontab
......
而且我没有检测/记录,所以我不知道缺少 env 变量。
推荐阅读
- android - 我的代码在模拟器上运行,但在真实设备上遇到错误
- linux - 查找具有特定权限的文件
- python - Pandas - 用最少的步骤替换/合并行的方法
- reactjs - 如何让 Django 在 Ubuntu 18.04 上使用 Apache2 服务 React?
- python - XOR 函数在特殊情况下失败
- visual-studio-2010 - C++ libcurl: schannel: 导入证书文件 cert.cer 失败,最后一个错误是 0x80092002
- javascript - 查找词频
- reactjs - 使用先前状态选项的 Material UI 自动完成
- json - 将列表变量传递给 terraform 中的 JSON 模板
- android - 有时会收到某些用户的通知,但其他用户不会