【发布时间】:2011-01-24 04:34:12
【问题描述】:
我正在尝试让 cron 调用正确的路径。当我从 shell 运行 Python 脚本时,脚本运行良好,因为它使用 bashrc 中设置的 PATH,但是当我使用 cron 时,所有 PATH 都没有从 bashrc 中使用。是否有一个文件我可以为 cron 输入路径(如 bashrc)或从 bashrc 调用路径的方法?
抱歉,我认为我的措辞不正确,我可以运行正确的脚本(这意味着 crontab 中脚本的 PATH 不是问题),只是当该脚本运行时我运行构建并这使用在.bashrc 中设置的路径。当我登录后运行脚本时,.bashrc 路径被拉入。由于 cron 没有在 shell 中运行,因此它不会拉入.bashrc。有没有一种方法可以在无需编写 bash 脚本包装器的情况下实现这一点?
【问题讨论】:
-
还可以看看这里给出的关于如何让 bashrc 设置适用于 cronjobs 的建议:stackoverflow.com/q/15557777/1025391
-
将您的个人资料包含在当前环境中的神奇、简单且正确的命令是
source /etc/profile,它应该吃掉.bashrc以及许多其他可能为您丢失的东西。如果您希望某些脚本“独立”运行,显式配置文件来源会非常有用,它还可以防止奇怪的环境等等...... -
@exa +100 这使得 crontab 调用的
sh脚本工作。您可以通过添加类似* * * * * echo $PATH > ~/crontab_path.txt的作业并在一分钟后检查文件来确认它是否更新了路径。