2026/2/13 3:46:28
网站建设
项目流程
建站后角度是不是0,做创意礼品的网站,网站怎么去优化,苏州马可波罗网站建设在 Jenkins 执行 Shell 时遇到 pm2: command not found 是非常常见的问题#xff0c;根本原因是 Jenkins 运行环境的 PATH 变量与用户登录环境不一致。以下是完整的解决方案#xff0c;按推荐顺序排列#xff1a;1. 使用绝对路径#xff08;最可靠#xff09;在 Jenkins 服…在 Jenkins 执行 Shell 时遇到pm2: command not found是非常常见的问题根本原因是Jenkins 运行环境的 PATH 变量与用户登录环境不一致。以下是完整的解决方案按推荐顺序排列1. 使用绝对路径最可靠在 Jenkins 服务器上先查找 pm2 的真实路径bash复制which pm2 # 示例输出/root/.nvm/versions/node/v16.15.1/bin/pm2然后在 Jenkins Shell 中使用完整路径bash复制/root/.nvm/versions/node/v16.15.1/bin/pm2 restart your-app2. 创建软链接常用方案将 pm2 链接到系统 PATH 目录bash复制# 查找 pm2 路径 which pm2 # 输出如 /root/.nvm/versions/node/v16.15.1/bin/pm2 # 创建软链接推荐 /usr/local/bin sudo ln -s /root/.nvm/versions/node/v16.15.1/bin/pm2 /usr/local/bin/pm2 sudo ln -s /root/.nvm/versions/node/v16.15.1/bin/node /usr/local/bin/node sudo ln -s /root/.nvm/versions/node/v16.15.1/bin/npm /usr/local/bin/npm3. 在 Jenkins Shell 中加载环境在 Jenkins 的执行 Shell步骤开头添加bash复制# 加载系统环境变量 source /etc/profile # 如果使用 NVM必须加载 NVM 脚本 export NVM_DIR$HOME/.nvm [ -s $NVM_DIR/nvm.sh ] \. $NVM_DIR/nvm.sh # 然后执行 pm2 命令 pm2 restart your-app4. 配置 Jenkins 全局环境变量在 Jenkins 系统设置中Manage Jenkins → System → Global Properties勾选Environment variables添加变量PATH/usr/local/bin:/usr/bin:/bin:/your/node/path或添加NODE_HOME/root/.nvm/versions/node/v16.15.15. 使用 npx临时方案如果不想配置环境可以直接使用 npxbash复制npx pm2 restart your-app6. 权限问题处理如果提示权限不足确保 Jenkins 用户有权访问 pm2bash复制# 查看 Jenkins 运行用户 ps aux | grep jenkins # 如果是 jenkins 用户建议用 root 运行或配置 sudo # 在 /etc/sudoers 中添加 jenkins ALL(ALL) NOPASSWD: /usr/local/bin/pm2然后在 Jenkins Shell 中使用bash复制sudo pm2 restart your-app快速验证在 Jenkins 中添加一个执行 Shell步骤运行以下命令测试bash复制echo $PATH which node which pm2 pm2 --version根据输出结果选择最适合你的解决方案。通常方案1或方案2能彻底解决大部分问题。