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

EC2环境下sudo执行pm2 ls提示command not found问题咨询

问题原因

这个报错是因为pm2的安装路径不在root用户的PATH环境变量中:pm2一般是通过普通用户的npm全局安装,默认路径在普通用户的npm全局目录下,执行sudo -i切换到root用户时会重置环境变量,加载root自身的PATH配置,找不到pm2的执行文件就会报command not found。

排查步骤
  • 首先在ec2-user用户下执行which pm2,记录返回的pm2绝对路径,比如常见输出为/home/ec2-user/.nvm/versions/node/v16.20.0/bin/pm2
  • 执行sudo -i切换到root用户,执行echo $PATH,检查上一步得到的pm2所在的目录(比如上面的例子里目录是/home/ec2-user/.nvm/versions/node/v16.20.0/bin)是否存在于PATH列表中,不存在即可确认是PATH配置问题
解决方案

临时使用(单次调用)

  • 直接使用pm2的绝对路径执行命令即可,例如:
    /home/ec2-user/.nvm/versions/node/v16.20.0/bin/pm2 ls
  • 也可以不用切换root,直接在ec2-user下执行sudo -E env PATH=$PATH pm2 ls,-E参数会保留当前用户的环境变量,直接用root权限执行pm2命令

永久生效(root用户下全局可用pm2)

可选两种方案:

  1. 给root的PATH添加pm2所在目录
    • 切换到root用户后编辑~/.bashrc文件,末尾添加一行:
      export PATH=$PATH:<pm2所在的目录绝对路径>
      以上面的例子为例就是export PATH=$PATH:/home/ec2-user/.nvm/versions/node/v16.20.0/bin
    • 执行source ~/.bashrc让配置立即生效,之后就可以直接调用pm2命令
  2. root用户下重新全局安装pm2
    切换到root用户,确认root环境下npm可用后执行npm install -g pm2,安装完成后root下即可直接使用pm2命令
异常处理

如果配置完成后执行pm2提示权限不足,执行chmod +x <pm2的绝对路径>授予执行权限即可。

内容的提问来源于stack exchange,提问作者MUHAMMAD SHAHID RAFI C P

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 17:39:02