【问题标题】:pm2: command not found in ec2 when running script filepm2:运行脚本文件时在 ec2 中找不到命令
【发布时间】:2021-06-17 17:25:24
【问题描述】:

在使用 gitlab CICD 成功部署 node.js 项目后,当尝试执行位于项目文件夹中的 script.sh 文件时,它会显示

./script.sh:第 3 行:pm2:找不到命令

我想在部署 node.js 文件后重启 pm2 服务器

现在,如果我在从终端 ssh 进入我的 ec2 之后运行这个 script.sh 文件,它会成功执行。

这是我的 script.sh 文件

帮我解决这个问题,

提前谢谢你:)

【问题讨论】:

  • 您是否在全球范围内安装了 pm2? npm i pm2 -g,您在 CICD 管道中显示的目录似乎与您在 ssh 之后显示的目录不同。或者尝试在脚本中添加路径而不是 ssh 参数,所以脚本看起来像这样cd /home/ubuntu/backend_path; pm2 restart server.js
  • Hii @Adiii,ssh 和终端中的目录路径也相同,我已经在脚本文件 cd /home/ubuntu/backend_path; 中尝试过此路径; pm2 restart server.js 但它没有工作问题不是路径,因为如果在终端和 gitlab runner 上都找到脚本文件,但它无法识别 pm2 命令
  • 你全局安装了 pm2 吗?
  • 是的,我已经全局安装了 pm2
  • 和 ssh 是来自 gitlib 的 ubuntu 的用户?

标签: node.js bash amazon-ec2 deployment gitlab


【解决方案1】:

好吧,在尝试了许多可能的方法后,我发现首先使用 sudo su 进入你的 ec2 根目录,然后将 npm 和 pm2 安装到根目录中。

在此之后,您可以从脚本文件运行 pm2 命令。

【讨论】:

    【解决方案2】:

    此外,如果您可以添加以下命令并检查,它对我有用。

    sudo ln -s "$(which pm2)" /usr/bin/pm2

    我在 AWS EC2 实例中工作。

    【讨论】:

      猜你喜欢
      • 2021-09-06
      • 2014-03-18
      • 2022-08-17
      • 1970-01-01
      • 2017-08-10
      • 1970-01-01
      • 2020-11-04
      • 1970-01-01
      • 2019-04-15
      相关资源
      最近更新 更多