树莓派启动脚本无法识别PM2与NPM的问题及解决方法
解决树莓派开机自启Node.js项目时npm/pm2命令未找到的问题
问题场景
在树莓派上部署Node.js项目,想用PM2实现开机自动运行(避免占用终端)。手动执行启动脚本完全正常,但设置开机自启后,日志里一直报错npm: command not found和pm2: command not found。
问题原因
开机自启的脚本是在非交互式shell环境中运行的,这种环境默认不会加载用户个人的环境变量配置(比如通过NVM安装Node.js时生成的环境变量)。而手动执行脚本时,你是在交互式shell里,系统已经加载了NVM的配置,所以能正常找到npm和pm2的命令路径。
解决方法
直接在你的开机启动脚本开头添加一行命令,手动加载NVM的环境配置:
source /home/[user]/.nvm/nvm.sh
注意把命令里的[user]替换成你的树莓派实际用户名。这样脚本在开机运行时会先初始化NVM的环境变量,之后就能正确识别npm和pm2命令了。
内容的提问来源于stack exchange,提问作者shestakov-dev
相关产品推荐
相关产品推荐

