You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Ubuntu 21.10 impish下cron无法执行Docker启动命令求助

问题核心原因

cron执行定时任务时的默认PATH环境变量和你交互式登录终端的PATH不一致,找不到docker命令的执行路径,这是90%以上「手动能正常执行的命令在cron中运行失败」的原因。你可以先打开配置的日志文件/home/cronlog.log,里面大概率会打印docker: command not found的报错信息。


解决方法

你可以任选以下任意一种方案调整:

  • 方案一:直接在crontab规则中使用docker的绝对路径
    先在终端执行which docker获取docker二进制文件的完整路径,常见返回值为/usr/bin/docker或/usr/local/bin/docker,将你的crontab规则修改为对应路径即可:
*/1 * * * * /usr/bin/docker start sender >> /home/cronlog.log 2>&1
  • 方案二:调整独立启动脚本的配置
    如果要保留用脚本执行的方式,需要做两个调整:
  1. 给脚本添加可执行权限,确保cron有权限运行脚本:
chmod +x /home/start_container.sh
  1. 要么在脚本中也使用docker的绝对路径,要么在脚本开头声明完整的PATH变量(可以先执行echo $PATH拿到你当前终端的PATH值填在这里):
#!/bin/sh
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
docker start sender
  • 方案三:在crontab中全局配置PATH
    直接在crontab -e编辑的文件最顶部添加PATH声明,和你当前终端的PATH保持一致,后续所有定时规则都可以直接用平时的命令:
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
*/1 * * * * docker start sender >> /home/cronlog.log 2>&1

内容的提问来源于stack exchange,提问作者NictheDEV

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.28 17:27:02