linux中定时任务执行代码的时候,环境变量不起作用(不是root账号,没有继承root的环境变量,导致代码执行错误,找不到命令)

1 这是我配置的定时任务,每分钟执行一次 php命令,这个命令里面会用到ffmpeg处理视频(ffmpeg命令执行时没有带绝对路径,导致提示命令不存在,其实环境变量是配置过的,但是环境变量不起作用。可在定时任务后面加上>> /tmp/cron_debug.log 2>&1,就能在日志文件tmp/cron_debug.log中看到报错信息 )
在这里插入图片描述在这里插入图片描述
2 可在定时任务中配置 * * * * * env > /tmp/cron_env.log 将配置文件(包括环境变量)输出到/tmp/cron_env.log文件中,查看有没有环境变量

3 解决:在定时任务中手动添加环境变量 PATH=/usr/local/sbin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/php/bin:/usr/local/bin:/usr/local/conda/bin:/usr/local/ffmpeg6/bin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/nginx/sbin 后成功执行
在这里插入图片描述
4 分析:查看/tmp/cron_env.log文件已经有了环境变量,所以执行成功了
在这里插入图片描述

Logo

中国智能体开发者社区,聚焦智能体与大模型开发,提供前沿资讯、实用工具链、开源项目及行业案例。通过技术沙龙、开发者大赛等活动,促进经验交流与协作,助力开发者快速构建创新智能应用。

更多推荐