无法从 crontab 执行 shell 脚本
这是我的 crontab
* * * * * /home/open-cv/run.sh
这是我的 run.sh
#!/bin/bash
cd /home/py
source env/bin/activate
python script.py
答案1
- 确保您的脚本是可执行的
chmod +x /home/open-cv/run.sh
- 尝试使用你环境中的特定二进制文件
#!/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
)来设置环境,然后调用所需的程序。