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

树莓派I2C相关Node脚本配置@reboot cron任务开机无法运行

树莓派cron @reboot任务不触发排查方案
  • 第一步:查看cron运行日志定位报错
    树莓派默认cron日志会输出到syslog,执行以下命令过滤相关记录:
    grep CRON /var/log/syslog
    如果日志里提示找不到node、权限报错等信息,可以直接定位问题根因。
  • 第二步:补全任务执行上下文
    cron执行@reboot任务时不会加载用户的shell配置,也不会默认进入用户家目录,修改任务格式补全上下文:
    @reboot cd /home/pi && /usr/local/bin/node /home/pi/mcp23017.js >> /home/pi/cron_node_log.log 2>&1
    
    以上修改会将脚本的标准输出和错误输出都写入/home/pi/cron_node_log.log文件,开机后可直接查看日志排查脚本内部错误。
    如果你的Node.js是通过nvm安装的,需要用which node命令获取实际的node二进制绝对路径替换任务里的/usr/local/bin/node,nvm的node路径默认不会被cron识别
  • 第三步:添加启动延迟
    mcp23017依赖i2c硬件驱动服务,cron的@reboot任务会在系统启动早期执行,此时可能i2c、GPIO相关服务还未初始化完成,可添加延迟等待服务就绪:
    @reboot sleep 15 && cd /home/pi && /usr/local/bin/node /home/pi/mcp23017.js >> /home/pi/cron_node_log.log 2>&1
    
  • 第四步:检查权限配置
    确认执行crontab的用户对以下内容有对应权限:
    • 对/usr/local/bin/node有执行权限
    • 对/home/pi/mcp23017.js有读权限
    • 若为pi用户执行任务,确认pi在gpio用户组中,执行groups pi查看,不在的话执行sudo usermod -aG gpio pi添加
  • 第五步:确认cron服务状态
    执行以下命令确认cron服务已设置开机自启:
    sudo systemctl is-enabled cron
    若返回disabled,执行sudo systemctl enable --now cron开启服务。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 23:09:04