无法从 crontab 执行 shell 脚本

无法从 crontab 执行 shell 脚本

无法从 crontab 执行 shell 脚本

这是我的 crontab

* * * * *       /home/open-cv/run.sh

这是我的 run.sh

#!/bin/bash

cd /home/py
source env/bin/activate
python script.py

答案1

  1. 确保您的脚本是可执行的
chmod +x /home/open-cv/run.sh
  1. 尝试使用你环境中的特定二进制文件
#!/bin/bash
/home/py/env/bin/python /home/py/script.py

答案2

通过cron、 或at或运行的作业batch不会在桌面上的同一运行时环境中运行。您的任何PATH更改或其他环境变量设置都不会自动传播到您的cron作业。例如,没有$DISPLAY,因此 GUI 程序需要特殊处理(阅读man xhost)。

cron人们可以在crontab文件 Read中为所有作业设置环境变量man 5 crontab

echo "=== set ===";set;echo "=== env ===";env | sort;echo "=== alias ===";alias查看每个环境中的结果 。

由于command该行的一部分crontab默认由 解释/bin/sh,其语法比 更简单/bin/bash,因此我建议command调用一个bash脚本(可执行、已安装、以 开头#!/bin/bash)来设置环境,然后调用所需的程序。

相关内容